@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

VBのエラーメッセージ XXX:[][][]エラーから読み取れること

投稿者投稿内容
koara
ベテラン
会議室デビュー日: 2005/09/16
投稿数: 96
投稿日時: 2006-03-23 14:18
いつもお世話になっております。

VB(バージョンは分かりません)で開発された
Oracle8.1i ServerにODBC接続しているソフトで、
不特定のタイミングで下記のエラーが発生します。

実行時エラー'40002':
S1000: [Oracle][ODBC]文字化けした文字列

DBの不特定のTABLEに対して更新処理をする際に起こっているようで、
サーバーのセッションを確認したところロックも発生してないうえ、
負荷も低いのでソフト側の問題かと考えています。

本来なら
S1000:[Oracle][ODBC][Ora]ORA-エラーコード
となると思うのですがなぜか文字化けします。

今のところ手掛かりがこのエラーしかないのですが、
このエラーからどんなことが読み取れるのでしょうか?
また
XXX:[][][]エラー
というエラーには何か規則性があるのでしょうか?

知りたいことは
・OracleのODBCで接続したOracleサーバーが出したエラーをアプリケーションが出した。
・Oracleサーバーとの接続がうまくいかずODBCドライバが出した。
・使用しているソフトが処理に失敗して出した。
など具体的にエラーが起こっている場所を特定したいです。
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2006-03-23 15:07
msoです。

おそらくkoaraさんは運用サイドの人だと思いますが、
VBのソースファイルはないのでしょうか?
問題点が非常に曖昧なので、
現状では誰も答えられないと思いますが・・・。

引用:

koaraさんの書き込み (2006-03-23 14:18) より:

本来なら
S1000:[Oracle][ODBC][Ora]ORA-エラーコード
となると思うのですがなぜか文字化けします。


なぜそう思われたのか理由をお聞きしたいです。
エラーコードであれば通常文字化けしづらいはずなので、
エラーメッセージがそのまま返ってきているのではないでしょうか?
それとも過去にエラーが発生したときにOra−XXXXXが返ってきたのでしょうか?

もしそうであれば、そのときと何が違うのかを調査すれば
原因解決ではないでしょうか?
#文字化けに対してですが。

引用:


今のところ手掛かりがこのエラーしかないのですが、
このエラーからどんなことが読み取れるのでしょうか?
また
XXX:[][][]エラー
というエラーには何か規則性があるのでしょうか?



プログラムの仕様では?
基本設計書とかに書いてありませんか?
もしくは、開発元に聞いてみてはどうでしょうか?

引用:

知りたいことは
・OracleのODBCで接続したOracleサーバーが出したエラーをアプリケーションが出した。
・Oracleサーバーとの接続がうまくいかずODBCドライバが出した。
・使用しているソフトが処理に失敗して出した。
など具体的にエラーが起こっている場所を特定したいです。



ある程度は切り分けが出来るとおもうのですが、
ログインできてるのであれば、Oracleとの接続は成功していると思います。
なので、個人的にはアプリケーションが処理に失敗しているのではないでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-23 15:47
引用:

koaraさんの書き込み (2006-03-23 14:18) より:

VB(バージョンは分かりません)で開発された
Oracle8.1i ServerにODBC接続しているソフトで、


のソフトウェアが勝手に出しているメッセージでしょう。

引用:

実行時エラー'40002':
S1000: [Oracle][ODBC]文字化けした文字列


からして、そう思います。
なので、ここで聞くのではなく開発元に聞くと良いでしょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-03-23 16:21
引用:

知りたいことは

など具体的にエラーが起こっている場所を特定したいです。


場所とはソースのことかと思いますが、
であれば、再現性のある操作がわからないとどうにもなりません。

メッセージの規則性かという質問に対しては、見慣れたいつもの形をしています。
[]はミドルウェアやドライバの呼び出し階層を現します。
したがってそこから読み取れることはどこで現象が起こっているかがわかります。
ソース、ミドルウェア、ドライバ、、、

文字化けですが、考えられることは表示しようとしているSQLが文字化け、
または、そのアプリケーションが独自に表示している仕様に起因した文字化け、
DB関連のドライバ等のバージョンが日本語、英語混ざっている、くらいですか。。。
#デバッグすれば正しいメッセージを得られるかもしれません。
#確かErrorオブジェクトも階層になっているはずなのでそれぞれの階層のメッセージを見れるはず

メッセージがわからないのでデバッグが一番でしょう。
koara
ベテラン
会議室デビュー日: 2005/09/16
投稿数: 96
投稿日時: 2006-03-24 09:41
mso様、じゃんぬねっと様、まどか様
レスありがとうございます。

昨日は、質問後から別の業務に駆り出され
投げっぱなしにしてしまい、申し訳ありませんでした。

mso様へ

引用:

おそらくkoaraさんは運用サイドの人だと思いますが、
VBのソースファイルはないのでしょうか?
問題点が非常に曖昧なので、
現状では誰も答えられないと思いますが・・・。



恥ずかしながらまったくの運用側でなく現場のコーダーです。

ソースとデータベースの設計書はあるのですが、
権限がなくこのソフトのソース管理にアクセスできません。

開発元には軽く問い合わせをしたのですが、そういう症状の報告はないそうで
もっと突っ込んだ質問をするには材料が欲しいというわけです。

最大の問題はここだと思うのですが、質問がぼけてしまう気がして省いたことで
逆に質問を曖昧にしてしまったのだと思います、気を付けます。

引用:

なぜそう思われたのか理由をお聞きしたいです。
エラーコードであれば通常文字化けしづらいはずなので、
エラーメッセージがそのまま返ってきているのではないでしょうか?
それとも過去にエラーが発生したときにOra−XXXXXが返ってきたのでしょうか?

もしそうであれば、そのときと何が違うのかを調査すれば
原因解決ではないでしょうか?
#文字化けに対してですが。



同じ状況でこのエラーが文字化けせずに表示できたことはありません。
またエラー発生のタイミング(時間的なタイミングではなく操作の上でのタイミング)
が特定できないので比較できない状況です。

以前Oracleサーバー側でトラブルが起きた際はOra-XXXXXというエラーが文字化け
せずに表示されましたのでそう思ったのですが、
その際のエラーメッセージを見たところ表記は

エラー番号 440Oracle Automationでエラーが発生しました。
SQL実行, ORA-01114: ファイル4(ブロック番号 XXXXXXX)への書き込みI/Oエラーが発生しました。
ORA-27069: skgdisp: ファイルの範囲外でI/O処理を試みました。
OSD-04026: 無効なパラメータが渡されました(OS XXXXXX)

今回とはぜんぜん違いました、すみません。

引用:

ある程度は切り分けが出来るとおもうのですが、
ログインできてるのであれば、Oracleとの接続は成功していると思います。
なので、個人的にはアプリケーションが処理に失敗しているのではないでしょうか?



Oracleとの接続は正常です、SELECT文は正常に結果を戻します。
わたしもアプリケーションが出しているのではないかという気がしますが
いまいち自信がありません。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-24 09:47
権限がない以上、koara さんの仕事の範囲でないと思うんですが... (;^-^)
どう解析しろっていうんでしょ? > 指示した人

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
koara
ベテラン
会議室デビュー日: 2005/09/16
投稿数: 96
投稿日時: 2006-03-24 10:04
じゃんぬねっと様へ
レスありがとうございます。

引用:

のソフトウェアが勝手に出しているメッセージでしょう。
(中略)
実行時エラー'40002':
S1000: [Oracle][ODBC]文字化けした文字列

からして、そう思います。
なので、ここで聞くのではなく開発元に聞くと良いでしょう。



勉強不足で申し訳ありません、
実行時エラー'40002'
からは例外処理がされていないステートメントで起こったことが分かりますから、
それはソフトウェアの対応するところだということでしょうか?

更に
S1000: [Oracle][ODBC]文字化けした文字列
はその原因、詳細を現しているのでこれを読み取るのはソフトウェアの開発元の仕事
ということでしょうか?

mso様へのレスへも書いたのですが、もう少しソフトウェア側が原因だと言い切る
根拠がないと押せない立場にあります。

開発依頼元が開発元に強く出れない...
こういう現状こそ本当は解決しなければいけない問題なのかもしれませんが、
トラブルが起こってしまった今となっては遅く、なるべく早く回答を頂けるよう
ソフトウェアの外側からでも理由を探して提示することを考えました。
koara
ベテラン
会議室デビュー日: 2005/09/16
投稿数: 96
投稿日時: 2006-03-24 10:32
まどか様へ
レスありがとうございました。

こんな曖昧な質問に皆さんの貴重なお時間を頂いて
本当に感謝しております。

当たり前ですが、
わたしの1時間とは比べ物にならないくらい他の価値を生み出せるすごい人ばかりで

そういう人が真剣に問題解決に向けて考えてくれるというのは
すごいことだなと思います。 ありがたいです。


引用:

場所とはソースのことかと思いますが、
であれば、再現性のある操作がわからないとどうにもなりません。



そうですね、再現性がないので
・サーバー側のハードウェアの問題
・クライアントの環境による問題
ということも考えられ一概にソフトウェアに原因があると言えないんです。

引用:

メッセージの規則性かという質問に対しては、見慣れたいつもの形をしています。
[]はミドルウェアやドライバの呼び出し階層を現します。
したがってそこから読み取れることはどこで現象が起こっているかがわかります。
ソース、ミドルウェア、ドライバ、、、



それが知りたかったです、
そうですかやはり呼び出し階層を現しているんですね。
これは何のエラー規則なのでしょう?
もう少し詳しく知りたいのですが、参考になるサイトなどあれば教えてもらえませんか?
『VB』『エラー』『呼び出し』『階層』などで検索したのですがうまくヒットさせることが出来ませんでした。

引用:

文字化けですが、考えられることは表示しようとしているSQLが文字化け、
または、そのアプリケーションが独自に表示している仕様に起因した文字化け、
DB関連のドライバ等のバージョンが日本語、英語混ざっている、くらいですか。。。
#デバッグすれば正しいメッセージを得られるかもしれません。
#確かErrorオブジェクトも階層になっているはずなのでそれぞれの階層のメッセージを見れるはず



DB関連のドライバですか
サーバーはOracle8.1i クライアントは9iを使用しております。
気になるので調べてみます。

引用:

メッセージがわからないのでデバッグが一番でしょう。



ほんとうにわたしもそう思います。
先ほど開発元から再度回答がありまして、
やはり何度同じ操作を行っても再現しないそうで
開発元:『同じ操作で再現しないのでは調査のしようがありませんので、
     現状エラーが出ないのであればこれでよろしいでしょうか?』
わたし:『そうですか、ありがとうございました。』
開発元:『また、進展ありましたら連絡いたします。』
というようなやり取りで終わりました。

上記で同じ操作というのは
同じデータで同じ操作をしたということで
クライアントのユーザー環境、ハードウェア構成は違います。

材料を探さなければますますプッシュするのが難しくなってしまいました

スキルアップ/キャリアアップ(JOB@IT)