A.4. Sybase
例A.10 Sybase Datasource
A.4.1. Sybase の制限 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Sybase では、認識しておくべき例外設定がいくつか存在します。
- トランザクションにおけるDDLステートメント
- Enterprise Platform の中心部分であるHibernateがあると、データベースがトランザクション内でDDLステートメントに対応するか否かをSQLダイアレクトにより決定することができます。Sybase はこれをオーバーライドしません。デフォルトはJDBCメタデータをクエリしDDLがトランザクション内で許可されているか参照します。しかし、Sybaseはこのオプションを使うかのレポートを修正しません。Sybaseは、ロック関連の問題があるため、トランザクションにおけるDDLステートメントの利用を推奨していません。
ddl in tran
オプションの有効化あるいは無効化の方法については、Sybase 文書を参照してくdささい。 - Sybase は、値が基盤となるカラムの制限を越えても例外をスローしません。
- Sybase ASE は、Parameterized SQLを利用している場合例外をスローしません。デフォルトでは、
jconn3.jar
はParameterized SQLを挿入に使っており、値が基盤カラムの制限を越えても例外はスローされません。例外がスローされないため、Hibernateは挿入が失敗したことを通知できなくなっています。Parameterized SQLの代わりにDynamic Prepare を使うことで、ASEは例外をスローします。Hibernateはこの例外をとらえ、それに従い動作します。このような理由からHibernateの設定ファイルでは、Dynamic prepare
パラメーターをtrue
に設定してください。<property name="connection.url">jdbc:sybase:Tds:aurum:1503/masterDb?DYNAMIC_PREPARE=true</property>
<property name="connection.url">jdbc:sybase:Tds:aurum:1503/masterDb?DYNAMIC_PREPARE=true</property>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow jconn4.jar
はデフォルトではDynamic Prepareを利用します。 - SchemaExportは、連鎖トランザクションモードにてストアドプロシージャーを作成できません。
- Sybaseでは、SchemaExport を使い連鎖トランザクションモードにてストアドプロシージャーを作成することができません。この問題の回避策は、以下のコードを新規のストアドプロシージャーの直後に追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow