[operation:2255] Re: Hudsonのテスト環境 + DB2

Jun Futagawa [E-MAIL ADDRESS DELETED]
2008年 12月 25日 (木) 00:20:15 JST


ふたがわ (jfut) @サーバチームです。

On 2008/12/24 19:45,Jun Futagawa wrote:

> 失敗する原因探してる途中で、今、環境壊れています。
> 帰る時間なので、帰ったら直します。
> 
> 原因はたぶんスキーマ名の大文字小文字関係っぽいです。
> 小文字でスキーマ作れればそっちにしますのでしばらくお待ちください。

小文字のスキーマ名にすべて直してみましたがまだ駄目みたいです。
(#126は試しに実行して失敗したビルドです)

>> CREATE PROCEDURE するときか呼び出すときのどちらかで
>> スキーマの明示的な指定が必要なのかなぁ。
>> currentSchema以外に何かの設定が必要ということもある
>> かもしれませんね。
>>
>> 調べてみます。

試しに xaDataSource の設定に currentSchema 以外に、
currentSchema の設定も追加してジョブを実行してみてください。
それで動く気がします。

<initMethod name="addProperty">
    <arg>"currentFunctionPath"</arg>
    <arg>"s2container_2_4_s2jdbc_it"</arg>
</initMethod>

* 参考: IBM DB2 Driver for JDBC and SQLJ のプロパティー -> currentFunctionPath
http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.apdv.java.doc/doc/rjvdsprp.htm

* 現在のDBの状態
db2 => SELECT * FROM SYSCAT.SCHEMATA WHERE SCHEMANAME='s2container_2_4_s2jdbc_it'

SCHEMANAME                OWNER    OWNERTYPE DEFINER  DEFINERTYPE CREATE_TIME                REMARKS
----------------------------------------------------------------------------------------------------
s2container_2_4_s2jdbc_it DB2INST1 U         DB2INST1 U           2008-12-24-23.03.20.466036 -

db2 => SELECT ROUTINESCHEMA, ROUTINENAME, LANGUAGE FROM SYSCAT.ROUTINES WHERE ROUTINESCHEMA='s2container_2_4_s2jdbc_it'

ROUTINESCHEMA             ROUTINENAME                 LANGUAGE
-------------------------------------------------------------
s2container_2_4_s2jdbc_it PROC_NONE_PARAM             SQL
s2container_2_4_s2jdbc_it PROC_SIMPLETYPE_PARAM       SQL
s2container_2_4_s2jdbc_it PROC_SIMPLETYPE_TIME_PARAM  SQL
s2container_2_4_s2jdbc_it PROC_DTO_PARAM              SQL
s2container_2_4_s2jdbc_it PROC_DTO_TIME_PARAM         SQL
s2container_2_4_s2jdbc_it PROC_RESULTSET              SQL
s2container_2_4_s2jdbc_it PROC_RESULTSET_OUT          SQL
s2container_2_4_s2jdbc_it PROC_RESULTSET_UPDATE       SQL
s2container_2_4_s2jdbc_it PROC_RESULTSET_UPDATE2      SQL
s2container_2_4_s2jdbc_it PROC_RESULTSETS             SQL
s2container_2_4_s2jdbc_it PROC_RESULTSETS_UPDATES_OUT SQL

--- 以下、おまけ ---

コマンドラインでのスキーマ作成時には "" で囲むと小文字も指定できました。

db2 CREATE SCHEMA hoge1
 -> 作成されるスキーマ: HOGE1
db2 CREATE SCHEMA "hoge1"
 -> 作成されるスキーマ: hoge1

他の CREATE や DROP の指定にも "" が必要でした。
ちなみに WHERE 句で指定する場合は "" だとNGです。
以下、hoge1.SAMPLE をDROPしたい場合の例。

DROP PROCEDURE hoge1.SAMPLE
 -> NG: HOGE1.SAMPLE と解釈される
DROP PROCEDURE 'hoge1.SAMPLE'
 -> NG: unexpected token
DROP PROCEDURE 'hoge1'.SAMPLE
 -> NG: unexpected token
DROP PROCEDURE "hoge1.SAMPLE"
 -> NG: DB2INST1.hoge1.SAMPLE と解釈される
DROP PROCEDURE "hoge1".SAMPLE
 -> OK: hoge1.SAMPLE と解釈される

最初なんで上手くいかないのか判りませんでした。

--- おまけ終わり ---

>>>>> ----- 以下、現状スキーマを使わない環境の説明 ----
>>>> とりあえず、s2jdbc-itでは、
>>>> 現状のスキーマを使わない環境でビルドが成功しました。
>>> おめでとうございます。
>> ふたがわさんのおかげです。

こちらこそいつもすぐに試していただきありがとうございます。
小林さんもありがとうございます。

-- 
ふたがわ


operation メーリングリストの案内