DB2 for i copy to DB2 LUW
DB2 for iからDB2 LUWへデータコピーをしたかったので、phpで作った。
処理自体は、簡単なものでスキーマ名とテーブル名をのfrom toを受け取って、DELETE and INSERTするだけ。
CREATE TABLEは既にされているという前提で...
<?php //Db2 for i $db2I = Zend_Db::factory($conf); //SQL $select = $db2I->select() ->from($schema . '.' . $table); $stmt = $db2I->query($select) ; $fromRows = $stmt->fetchAll(); //DB2 LUW $db2LUW = Zend_Db::factory($conf2); //削除 $count = $db2LUW->delete($schema . '.' . $table); //追加 foreach ($fromRows as $row ) { $db2LUW->insert($schema . '.' . $table, $row); } ?>
これを、Windows版 Zend Serverで動かすと、DB2 LUWにデータは書かれるのだけど、Zend Server for i上で動かすと、LUW側のコネクションも、IPアドレスやポートは、無視されて、自己参照してしまう。
今回のケースは、たまたまiもLUWもデータベース名、ユーザ、パスワード全てが、両方で同じだったので、自己参照をしたという結果になった。
DB2のドライバが違うんだろうね。確かに接続パラメータも違うしね。
と言うことは、「iの方でDRDA使えば更新出来んじゃね?」と言うことは容易に想像がつくのだが...「'分散データベースの接続の試みで認可が正常に実行されません。 SQLCODE=-30082」であっさり駄目だった。
DB2トランザクション・ログがフル (SQL0964C)
IBM i上のDB2から、Windows上のDB2 Express Cにデータをコピーする際に、あるテーブルの全レコードを"DELETE"したら、たまたま件数が多かった(12万件程度)のもあって、「SQL0964C データベースのトランザクション・ログがいっぱいです。 SQLSTATE=57011」というエラーが返された。
対象法として、
- トランザクションを細かくする
- ログ容量を増やす
が有る。「1」の方法はコピーを作る上では面倒なので、「2」のログサイズを増やしておいた。増やし方は以下の通り。
-
- 「コントロールセンター」を開き、該当するデータベースを右クリック。
- 「データベース・ロギングの構成」を選ぶ。
- 「ロギング・サイズ」の項目で、”1次ログ・ファイルの数”、”2次ログ・ファイルの数”、”各ログ・ファイルのサイズ”のページ数(ページ当たり4K)を増やす。
- 増やした後は、データベースを再起動する。
-
-
- 1次ログ・ファイル(初期値13)・・・データベース起動時に確保される。ログファイル。
- 2次ログ・ファイル(初期値4?)・・・1次ログで不足した際に、1つずつ確保されるログファイル。
- ファイルサイズ(初期値1024)・・・ログファイルのページ数(1ページ4K)
-
2次ファイルを多用するとパフォーマンス的には、1次ファイルより悪い。
Zend StudioでZFプロジェクトが作成出来なくなった
ある日、Zend Studioで「Zend Framewrokプロジェクト」を新規作成しても中身が空っぽだった。
コマンドラインから「zf show version」を実行すると以下のスタック
C:\Program Files\Zend\Zend Studio i5 - 7.2.1\plugins\org.zend.php.framework.resource_7.2.0.v20100324-1300\resources\ZendFramework-1\bin>zf show version Warning: include_once(NetBeansCommandsProvider.php): failed to open stream: No such file or directory in C:\Program Files\Zend\ZendServer\share\ZendFramework\ZendFramework-1.10.6\library\Zend\Loader.php on line 146 Warning: include_once(): Failed opening 'NetBeansCommandsProvider.php' for inclusion ....
「NetBeansCommandsProvider.php」が見つからないと...。はて?そう言えば、NetBeansで、Zend Frameworkのプロバイダ登録したのを思い出した。
~/.zf.iniを確かめると以下の通り
php.includepath = "...." basicloader.classes.0 = "NetBeansCommandsProvider"
あーこれだ。
「NetBeansCommandsProvider」を削除にするか、「%ZEND_STUDIO_HOME%\plugins\org.zend.php.debug.debugger.win32.x86_5.3.7.v20100625\resources\php5\php.ini」の”include_path”に「C:\Program Files\NetBeans\7.0\php\zend」を追加してパスを通すかで対応した。
SQLRPGプリコンパイラの不思議
久々に備忘録。
滅多なことでは、SQLRPGを使わないのですが、少しハマったので備忘録を。
例えばこんな感じのD仕様書で
D result DS dim(ITEM_Row_Max) D LIKEREC(ITEMR :*INPUT)
こんな感じのC仕様書だった場合
exec SQL set Result sets Array :result for :count Rows ;
CRTSQLRPGIを実行すると、SQLのプリコンパイルで以下のようなエラー
SQL5011 30 108 桁 60 ホスト構造配列 RESULT が定義されていないか,または使用できない。
LIKERECをEXTNAMEで外部参照しても同じ結果です。
以下は、V5R4 ILE-RPG解説書のLIKERECから引用。
LIKEREC は、2 番目の任意指定パラメーターを使用できます。このパラメーターはレコードのどのフィールドをデータ構造に入れるかを指定します。これには以下のものが含まれます。
-
- *ALL 外部レコードのすべてのフィールドが抜き出されます。
- *INPUT すべての入力可能フィールドが抜き出されます。(これはデフォルトです。)
- *OUTPUT すべての出力可能フィールドが抜き出されます。
- *KEY キー・フィールドが、キーがDDS のK 指定に定義されている順番に抜き出されます。
上記によるとデフォルトは「*INPUT」との事。
自分の認識「READ/UPDATE = *INPUT」「WRITE = *OUTPUT」「KLIST = *KEY」*ALLは使わない。
こんな感じです。でも不思議とD仕様書を以下の様に、LIKERECの第二引数を省略するとSQLのプリコンパイルが出きるんですよ。これって何?確かにINPUTもするし、Result SetsでOUTもするけど、その関係で...?でも省略は*INPUTのハズ。どうにも解らない。誰か詳しい人教えて下さい。
D result DS dim(ITEM_Row_Max) D LIKEREC(ITEMR)
今年のShizuDevはJavaScriptで行きます
久々のブログ更新です。
今年のShizuDev(静岡Developers勉強会)は、JavaScriptの読書会を行います。
栄えある第1回は、富士のコミュニティFで開催です。自分は今回も"つけナポリタン"の店を開拓しますw。
課題図書は『JavaScript: The Good Parts』です。普段JavaScriptのキモを抑えずに、使ってしまっている自分がいたりします。(まぁそんなに使ってはいないのですが...。:-P)
今ホットなHTML5などにも繋がるので、初心にかえりJSを学び直す、良い機会かと思います。
相変わらずスピーカーは、参加者で持ち回りですが、自分を含めよく解っていない人も、結構いたりするので、気軽に参加して下さい。
積極的にスピーカーをやって頂くというのもモチロン大歓迎です。
ぜひShizuDevグループにもご参加下さい。→ 静岡Developers勉強会 Google グループ
JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス
- 作者: Douglas Crockford,水野貴明
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/12/22
- メディア: 大型本
- 購入: 94人 クリック: 1,643回
- この商品を含むブログ (190件) を見る
開催要項
- 日 時 : 2011年2月12日(土) 13:00〜17:30
- 場 所 :富士市民活動センター・コミュニティF ( http://com-f.net/index.html )
- 地 図 : http://goo.gl/maps/LUkv
- 定 員 : 15名
- 費 用 : 1,000円 (学生・未成年無料)
- 持ち物 : パソコン、課題図書
- 課題図書: JavaScript: The Good Parts (ISBN-10: 4873113911)※各自事前購入
- 環境 : JavaScriptのコーディング用エディタ及び動作確認用webブラウザ
- 範 囲 : 1〜3章
- 担 当 : おおかわさん
- 懇親会 : 会場未定 18:00〜 (※締切は開催日前日の17:00迄)
- 懇親会費: 一般 4,000 円、学生・未成年 2,000 円 程度の予定
- 申し込み: http://bit.ly/ShizuDevJS01Entry
Haskell読書会を振り返って
一年に渡るShizuoka Developpers勉強会のHaskell読書会が、先週の土曜日に最終章を迎えました。
新たな仲間が出来、Haskellという新たな言語に出会い、一年を振り返ると、感慨深いものがあります。
運営にあたっては、自分の力不足を、勉強会メンバーに助けられた事も多々あり、この場を借りお礼をさせて頂きます。
来年度は、Java Scriptの読書会を行う事になりました。もしかしたら?台湾合宿?何て話も出たりw。課題図書は、Java Script Good Partsです。
来年のShizuDevも、初心者でも全然オッケーな、気軽に楽しめる勉強会を目指して行きたいと思っています。
サイトのリニューアルや新たなグループの立ち上げも年内には準備する予定です。
来年もShizuDev宜しくお願いします。