コネクト株式会社 技術情報コンテンツ | ||
Zend Server for IBM i:: プログラム開発に関する FAQ
いくつかの文字が化けてしまいますたとえば下記の原因が考えられます。
J型項目をdb2_prepare や i5_prepareで使用できますか残念ながらJ型項目に対するパラメーターマーカー(?記号)が使用できません。 実行時間の上限を増やしたい場合、どうしたらいいですかini_set 関数で max_execution_time 値を指定するか、または set_time_limit 関数を使用します。 パフォーマンスを向上させたいZend Studio for IBM iのプロファイラ機能やZend Server for IBM iのコードトレーシング機能を利用して長時間かかる処理を調査可能です。 例)ネットワークの問題IP アドレスの替わりにホスト名を使用している場合、そのホスト名から IP アドレスを正しく得られることを確認してください。 その他その他のパフォーマンス・チューニングについて、詳しくはお問い合わせください。 PHPから呼び出したRPGをデバッグするにはどうしたらいいですかRPG側で何らかの工夫が必要かと推測されます。
PHPから1番目のRPGを呼び出しておいて、後で2番目のRPGを5250画面でデバッグします。 非常に長い項目を取得できません。6000バイト位などの長い項目の場合、データが取得できないことがあります。 php.ini 上で ibm_db2.i5_dbcs_alloc を 1 に設定すると、ibm_db2 エクステンション内で元の長さを6倍することによる影響と考えられます。 UTF-8 では1文字当たり最大6バイト使うことがありえたため、EBCDICとの文字コード変換の際に十分な長さを確保しようとしてこの動作を行わせていると推測されます。その結果、DB2 での項目最大長の6分の1の長さを超えると異常が発生すると考えられます。 なお、ibm_db2.i5_dbcs_alloc を 1 に設定して既に使用中の場合、 0 に変えると、既存のプログラムで EBCDICとUTF-8との文字コード変換に支障をきたす可能性があります。 SQLで取得した結果の表示が途中で切れてしまいます。DBCS、もしくは半角カナを格納した項目の場合、UTF-8では日本語の文字は3バイト以上の長さで表現されるため、UTF-8に変換した結果が元々の項目の長さを超える場合があります。 echo命令で表示すると、途中から切り捨てられ(場合によっては@記号が最後について)いるように見えます。 QCCSID が65535または5026の場合、5035(または1399)状態と認識させることにより改善する可能性があります。 まず下記をお試しください /www/zendsvr/conf/httpd.conf に下記の記述を追加します。 DefaultFsCCSID 5035 DefaultNetCCSID 943 CGIJobCCSID 5035
SELECT RTRIM(CAST( KANAME AS CHAR(60) )) AS KANAME FROM JINMEI 同様に、20バイトの項目KANJMEが漢字で埋め尽くされると、UTF-8の変換結果は27バイト以上になる可能性があります。 (20-2)/2*3 = 27 そこで、最初から27バイト以上の長さの結果を返すことが有り得るようにSQLを記述します。 SELECT RTRIM(CAST( KANJME AS CHAR(30) )) AS KANJME FROM JINMEI ROLLBACKやCOMMITを使用するには、どのようにすればよいですか。
.htaccess で php_value を使いたいApache との連携が mod_php ではなく FastCGI 実装のため、 PHPのtimeメソッドが取得する時刻はどのような時刻ですか。timeメソッドは、QTIMEを取得するAIXのコマンドを内部で実行しています。 |