ホーム › フォーラム › A5:SQL Mk-2掲示板 › アサートの失敗について
- このトピックには9件の返信、2人の参加者があり、最後にhkにより6年、 8ヶ月前に更新されました。
-
投稿者投稿
-
kameゲスト
いつも利用させていただいております。ありがとうございます。
当方の環境のある一部のOracleのテーブルを開こうとすると、
以下のエラーが発生します。************************************
NET: アサートの失敗
C:\Users\matsubara\Documents\Delphi\BPL\Bpl_10.2\UniDAC\Source\UniProviders\Oracle\OraNetUni.pas, 3313行
************************************エラーが発生するのを確認したのは、a5m2_2.12.3_x64およびa5m2_2.13.0_beta32_x64です。
a5m2_2.12.0_x64ではエラーは発生しませんでした。これは何が原因でしょうか。
当方の環境個別の問題であればよいのですが、念のためご連絡させていただきます。松原正和キーマスターkameさんこんにちは。
不具合報告ありがとうございます。
このソースなのですが、Devart社のUniDACというDBアクセスコンポーネントでのassertエラーとなります。
この機能はOracleへOCIなしに接続するUniDACのおそらく「売り」の機能であるためか、ソースこそ一応あるものの、難読化されていて何の処理なのか全くわかりません。
再現すれば、デバッグ実行である程度目星も付けられるのですが、再現条件が分からないと、何とも手出しできません。
なにか特殊なデータ型あるいは値などで出ているのではないかと思うのですが、心当たりは足ますでしょうか?。
以上よろしくお願いいたします。
hkゲストいつも利用させていただいております。
ありがとうございます。バージョンアップしたところ、私の環境でも発生致しました。
64ビット版と32ビット版の両方で発生しました(a5m2_2.12.3_x64.zip、a5m2_2.12.3_x86.zip)。NET: アサートの失敗
(C:\User\matsubara\Documents\Delphi\Bpl_10\UniDAC\Source\UniProviders\Oracle\OraNetUni.pas, 2947 行)同様に、DBの接続までは問題ありませんが、テーブルを開こうとすると発生します。
DBは直接接続を設定しています。バージョンアップ前は問題なく利用できており、特に特殊なテーブル定義をしている心当たりはありません。
エラーの内容を見るに、松原様のユーザディレクトリを参照しようとしているように見えます。
何らかのコンポーネントのインストールや、環境変数の設定が必要なのでしょうか。恐れ入りますが、ご確認頂ければと存じます。
宜しくお願い致します。松原正和キーマスターhkさんこんにちは。
パスが出てしまうのは、解消しているつもりだったのですが…まだ出てしまうことがあるのですね…。
これは、アサートが失敗すると、ソースコードの位置を報告しているだけで、特にそのパスで何かアクセスするということはありません。
実際のソースを確認したところ…難読化されていて全く分かりません。
再現性はあるのでしょうか?。それとも偶発的に起こるエラーなのでしょうか?。
また、Version 2.13系のベータ版は異なるUniDACのバージョンを使っているのですが、こちらでは発生しますでしょうか?
松原正和キーマスターあと、直接接続時の不具合と思うので、InstantClientでも良いですので、Oracle Clientを導入するとよいかもしれないです。
hkゲスト松原様
ご返答ありがとうございます。
恥ずかしながら、元々かなり古めの2.9.1を利用しており、現在もこちらに戻して正常であることを確認しております。問題のエラーは、公開されている2.10.1、2.11.7、2.12.3の全て(32bit/64bit版双方)で発生しており、再現率は100%です。
ベータ版でも発生しました。
2.13.0beta46(32bit/64bit版双方)で試しました。InstantClientの導入も検討させて頂きます。
お手数ですが、ご確認の程お願い致します。松原正和キーマスターhkさんこんにちは。
Version 2.9系は現在(Version 2.12系、2.13 のベータ系)とはかなり違うライブラリを使っています。
デバッグ実行しながらいろいろ見てはいるのですが、どうも接続に使うプロトコルバージョンが想定の値と異なるときのAssertのように見えます。
ご利用のOracleのバージョンはおいくつでしょうか?、またサーバーのqlnet.oraのSQLNET.ALLOWED_LOGON_VERSION_SERVERの値などもわかるとありがたいです。
hkゲスト松原様
ご対応ありがとうございます。
Oracleのバージョンは、9.2.0.1.0です。
これまた大変古くて恐縮です。サーバーのsqlnet.oraを確認しましたが、SQLNET.ALLOWED_LOGON_VERSION_SERVERは定義されておりませんでした。
SQLNET.~というパラメータはAUTHENTICATION_SERVICESのみ定義されており、これは(NONE)となっておりました。恐れ入りますが、ご確認の程お願いいたします。
松原正和キーマスターhkさんこんにちは。
ちょっと、手が付けられない感じがしますね。InstantClientで問題なく接続できるなら、それをもって解決策とするしかないかと思います。
申し訳ありませんが、よろしくお願いいたします。
hkゲスト松原様
ご対応ありがとうございます。
承知致しました。
暫くは旧バージョンを利用するかと思いますが、バージョンアップ時にはInstantClientを試します。 -
投稿者投稿