1

Javaを使用しており、JNI接続プール(Weblogicサーバー)からデータベース接続を取得しています。

取得する接続に接続プロパティoracle.jdbc.V8Compatible="true"を設定したいのですが、これが設定されていない場合、日付とタイムスタンプを操作するときに誤った動作を引き起こすOracleのバグが存在するためです。

以前のコーダーが、私がハックと悪い習慣と見なすものを使用してOracleのバグを回避した、既存のコードがたくさんあります。

したがって、とにかく、理想的には、作成している新しいコードにoracle.jdbc.V8Compatible = "true"を設定しますが、既存のレガシーコードとの下位互換性のためにfalseのままにしておきます。全体的に「true」に設定すると、古いコードの一部が破損する可能性があります。接続プールから接続を取得しているので、これを行う簡単な方法はないかもしれませんが、プール内のすべてのデータベース接続を複製して、それぞれが異なるプロパティを持つようにすることは別として、私は気が進まないようです。複数のデータベースが使用されているため、これを実行してください。

プールからの接続の取得中、またはプールからの接続の取得後に、接続プロパティを動的に変更する方法がないことを確認したかっただけです。

4

2 に答える 2

1

私はあなたの選択は、好みの順にあると思います:

  1. Timestampオブジェクトを適切に処理するために、既存のコードをどこでもリファクタリングします
  2. コードに個別の接続プールを使用する
  3. レガシーコードを維持するために、タイムスタンプから日付への変換コードを記述します。
  4. 他の人が開始した回避策を引き続き使用します。
于 2012-11-03T14:09:12.473 に答える
0

接続プールがJNDIを介してそれを公開できるかどうかを確認します。次に、つまりJconsoleを使用して変更できます。

于 2012-11-02T22:33:23.383 に答える