[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 メーリングリストの案内