A5:SQL Mk-2

開発のこと、日々のこと

アサートの失敗について

ホーム フォーラム A5:SQL Mk-2掲示板 アサートの失敗について

  • このトピックには9件の返信、2人の参加者があり、最後にhkにより6年、 8ヶ月前に更新されました。
10件の投稿を表示中 - 1 - 10件目 (全10件中)
  • 投稿者
    投稿
  • #356 返信
    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ではエラーは発生しませんでした。

    これは何が原因でしょうか。
    当方の環境個別の問題であればよいのですが、念のためご連絡させていただきます。

    #378 返信
    松原正和
    キーマスター

    kameさんこんにちは。

    不具合報告ありがとうございます。

    このソースなのですが、Devart社のUniDACというDBアクセスコンポーネントでのassertエラーとなります。

    この機能はOracleへOCIなしに接続するUniDACのおそらく「売り」の機能であるためか、ソースこそ一応あるものの、難読化されていて何の処理なのか全くわかりません。

    再現すれば、デバッグ実行である程度目星も付けられるのですが、再現条件が分からないと、何とも手出しできません。

    なにか特殊なデータ型あるいは値などで出ているのではないかと思うのですが、心当たりは足ますでしょうか?。

    以上よろしくお願いいたします。

    #1144 返信
    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は直接接続を設定しています。

    バージョンアップ前は問題なく利用できており、特に特殊なテーブル定義をしている心当たりはありません。
    エラーの内容を見るに、松原様のユーザディレクトリを参照しようとしているように見えます。
    何らかのコンポーネントのインストールや、環境変数の設定が必要なのでしょうか。

    恐れ入りますが、ご確認頂ければと存じます。
    宜しくお願い致します。

    #1195 返信
    松原正和
    キーマスター

    hkさんこんにちは。

    パスが出てしまうのは、解消しているつもりだったのですが…まだ出てしまうことがあるのですね…。

    これは、アサートが失敗すると、ソースコードの位置を報告しているだけで、特にそのパスで何かアクセスするということはありません。

    実際のソースを確認したところ…難読化されていて全く分かりません。

    再現性はあるのでしょうか?。それとも偶発的に起こるエラーなのでしょうか?。

    また、Version 2.13系のベータ版は異なるUniDACのバージョンを使っているのですが、こちらでは発生しますでしょうか?

    #1196 返信
    松原正和
    キーマスター

    あと、直接接続時の不具合と思うので、InstantClientでも良いですので、Oracle Clientを導入するとよいかもしれないです。

    #1246 返信
    hk
    ゲスト

    松原様

    ご返答ありがとうございます。
    恥ずかしながら、元々かなり古めの2.9.1を利用しており、現在もこちらに戻して正常であることを確認しております。

    問題のエラーは、公開されている2.10.1、2.11.7、2.12.3の全て(32bit/64bit版双方)で発生しており、再現率は100%です。
    ベータ版でも発生しました。
    2.13.0beta46(32bit/64bit版双方)で試しました。

    InstantClientの導入も検討させて頂きます。
    お手数ですが、ご確認の程お願い致します。

    #1316 返信
    松原正和
    キーマスター

    hkさんこんにちは。

    Version 2.9系は現在(Version 2.12系、2.13 のベータ系)とはかなり違うライブラリを使っています。

    デバッグ実行しながらいろいろ見てはいるのですが、どうも接続に使うプロトコルバージョンが想定の値と異なるときのAssertのように見えます。

    ご利用のOracleのバージョンはおいくつでしょうか?、またサーバーのqlnet.oraのSQLNET.ALLOWED_LOGON_VERSION_SERVERの値などもわかるとありがたいです。

    #1354 返信
    hk
    ゲスト

    松原様

    ご対応ありがとうございます。

    Oracleのバージョンは、9.2.0.1.0です。
    これまた大変古くて恐縮です。

    サーバーのsqlnet.oraを確認しましたが、SQLNET.ALLOWED_LOGON_VERSION_SERVERは定義されておりませんでした。
    SQLNET.~というパラメータはAUTHENTICATION_SERVICESのみ定義されており、これは(NONE)となっておりました。

    恐れ入りますが、ご確認の程お願いいたします。

    #1425 返信
    松原正和
    キーマスター

    hkさんこんにちは。

    ちょっと、手が付けられない感じがしますね。InstantClientで問題なく接続できるなら、それをもって解決策とするしかないかと思います。

    申し訳ありませんが、よろしくお願いいたします。

    #1468 返信
    hk
    ゲスト

    松原様

    ご対応ありがとうございます。
    承知致しました。
    暫くは旧バージョンを利用するかと思いますが、バージョンアップ時にはInstantClientを試します。

10件の投稿を表示中 - 1 - 10件目 (全10件中)
返信先: アサートの失敗について
あなたの情報:




コメントは受け付けていません。