スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ORA-01461 → ORA-00600 → ORA-01483

再度新たに個別パッチを提供してもらったけど、今度は
『ORA-01483:DATEまたはNUMBERバインド変数の長さが無効です。』
という新たなエラーが発生・・・。さすが、オラクルさん

バグが発生しても、謝罪もないし、仕方ないじゃん的態度にキレマシタヨ


<本件の不具合内容及び修正情報>
----------------------------------------------------------------------------
ODP.NETでは、文字列型の値をバインドする際、OCIのレベルで「OCI_ATTR_MAXCHAR_SIZE」という属性を付加し、値のサイズをバイト数換算ではなく文字数換算で指定いたします。

リモート・カーソルの場合 (つまり DBLINKを使用している場合) に、「OCI_ATTR_MAXCHAR_SIZE」で指定された情報を取得する際、共有カーソル内で管理されている情報から取得しておりました。
このため、同じ共有カーソルを使用して「OCI_ATTR_MAXCHAR_SIZE」の値が異なった場合に、適切な値が使用されず、ORA-1461が発生しておりました。
これは、カーソルの作成時に指定された「OCI_ATTR_MAXCHAR_SIZE」の値より大きいサイズの値が再バインドされ、SQLが再実行されるという発生条件となります。

当初、「OCI_ATTR_MAXCHAR_SIZE」で指定された情報を共有カーソル側でハンドリングする方法について検討をしておりました。
(ORA-600が発生した、当初提供した個別パッチの修正内容となります)

しかし、「OCI_ATTR_MAXCHAR_SIZE」が異なるSQL文が実行された場合にカーソルが共有できなくなり、結果として子カーソルの増加するという問題(ORA-600[17059])が発生しておりました。

今回問題となった現象を解消するというだけであれば、共有カーソルにおいて管理させることが修正としては容易と考えられましたが、ODP.NET に限らずすべてのSQL実行に関わるコードパスであることから、修正による影響が非常に大きいことが判明いたしました。

このため、最終的には 並行して検討しておりました「OCI_ATTR_MAXCHAR_SIZE」の値をデータベースのプログラム・インターフェースのコード(データベースで内部的にSQLを実行する際のバインド情報の設定処理)内にて取得する方法を実装し、この方法を正式な修正として確定いたしました。
----------------------------------------------------------------------------

文字列型のバインド変数のサイズ情報の渡し方を変えただけなのに、NUMBER型のデータに影響を与えるってどういうことよ?
再度個別パッチを提供してもらうために、何ヶ月も待ったのに、というか最初にORA-1461が発生してから1年になろうとしてるのに、解決させようという気が無いのは、サポート料金取ってていかがなものでしょうか?

最優先で対応していると言いつつ、何ヶ月もかけてるやがるんだけど、それって普通に対応してもらってたら、何年も解決させる気ねぇという意思表示なんだろうなぁ。
このレベルのバグに対する個別パッチは、開発部門のエンジニアによる単体テストしかしないって言ってるけど、毎度こっちで検証すると新たな不具合出してるんだから、いい加減検証部隊なりでチャンと検証して下さいよ。

あぁ、言いたいことが山ほどあるのに、ムカついて上手く書けないです。
関連記事
スポンサーサイト

この記事へのコメント

トラックバック

URL :

プロフィール

あんま覚えてへんわ


「あんま覚えてへんわ」です。

最新記事
最新コメント
月別アーカイブ
カテゴリ

openclose

カレンダー
09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
ブログ内検索

アクセス数
アクセスランキング
[ジャンルランキング]
日記
3392位
アクセスランキングを見る>>

[サブジャンルランキング]
会社員・OL
649位
アクセスランキングを見る>>

天気予報
QRコード
QR
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。