データベース接続コンポーネントに関する既知の課題を次に示します。
Oracle 用の ojdbc5.jar ドライバは、準備された文をサポートしません。次のエラーメッセージが表示されます。
java.sql.SQLException: Unsupported feature
結果セットは設定されず、データ型にかかわらず、すべてのパラメータに対して java.lang.string が選択されます。
この課題を回避するには、ojdbc5.jar の代わりに DataDirect ドライバを使用します。
準備された insert 文に指定した引数が多すぎる場合に、エラーメッセージが表示されません。たとえば、3 列のテーブルに insert into table values(?,?,?,?,?) を実行すると、実行時例外が発生し、パラメータは追加されません。
準備された文を使用してパラメータを更新または削除した場合、実際のデータ型に関係なく、結果にデフォルトの java.lang.String データ型が表示されます。これは、Oracle 用 JDBC ドライバの DataDirect 接続が、リテラルとパラメータ化引数が混在した update 文に対して、パラメータメタデータ情報を返さないことが原因です。
この課題を回避するには、生成された XSD のパラメータのデータ型を手動で変更します。
特殊文字を使用した要素名を誤って解釈するのを避けるために、組み込み関数で別名を必要とします。たとえば、準備された文の select avg(float) from table where number in(...); では、次のエラーが発生します。
ERROR: s4s-att-invalid-value: Invalid attribute value for 'name' in element 'element'. Recorded reason: cvc-datatype-valid.1.2.1: 'AVG(NUMBER)' is not a valid value for 'NCName'.
この課題を回避するには、関数の別名を使用します。たとえば、select avg(float) avg from table where number in(...); を使用します。
DataDirect ドライバが正しいメタデータを返しません。結果的に、ストアドプロシージャの出力パラメータが、正しくない結果セットとなります。これはドライバのエラーで、正しくないパラメータを返すメタデータ呼び出し getProcedureColumns() に関して、DataDirect の作業チケット W809210001 が提出されています。
sqljdbc.jar ドライバを使用して、SQL Server 2005 で日時の値を挿入できません。これは、空白文字と括弧に関する構文エラーが原因です。
解決方法については、http://forums.microsoft.com/technet/ShowPost.aspx?siteid=17&postid=4061403 を参照してください。
ストアドプロシージャが、BLOB (Binary Large Object) データ型をサポートしません。プロシージャはエラーを生成せずに実行されますが、select 文はいずれの BLOB データも処理できません。
「レコード数」オプションが小さい値に設定されたクラスタ環境で、ポーリングに Derby データベースを使用する場合、次の例外がスローされ、接続プールを使用できなくなります。
java.sql.SQLException: Connection closed.
この課題を回避するには、ポーリングごとのレコード数を大きい値に設定します (たとえば、1000 レコードで 100 など)。別の回避方法として、すべてのクラスタ関連テーブルを同じデータベースに作成することもできます。
データベース BC が複数のサーバーにまたがるクラスタ環境に実装されている場合、ポーリングテーブルのメッセージの状態が、別のインスタンス (または、再開した同じインスタンス) で処理中のメッセージがピックアップされるのを防ぐため、フェイルオーバーが機能しない場合があります。
この課題を回避するには、ポーリングテーブルで状態が「In progress」または「SENT」のレコードを手動で削除します。これにより、実行中のインスタンスがメッセージをピックアップして再処理できるようになります。
持続性が有効なビジネスプロセスでデータベース BC が使用されている場合、ストアドプロシージャが失敗して、例外がスローされます。
ウィザードを使用してデータベース BC WSDL ドキュメントを作成する場合、table_name.xsd という名前の XSD ファイルも作成されます。同じ名前の XSD ファイルがすでに存在する場合は、上書きされます。
この課題を回避するには、既存の XSD ファイルと異なるテーブル名を指定します。