DB2ですべてのテーブルを一括削除するSQL

テーブル定義が結構大きく変わるときに、「全部DROP TABLE→CREATE TABLEするか!」っと思い立ったけど、DROP TABLEは複数のテーブルを指定できないみたいで↓のようにDROP文を生成してくれるSQLを作成しました。

SYSIBM.SYSTABLESの詳細はこちら
http://www.ibm.com/support/knowledgecenter/SSEPEK_11.0.0/sqlref/src/tpc/db2z_sysibmsystablestable.html

TYPE、NAME、CREATORなどをWHERE句に入れれば、いろんなパターンに対応できるかと。


TomcatのmaxParameterCountを設定する

Webアプリケーション自動生成ツールを使用して、JavaベースのWebアプリを開発をしていたときに直面した課題。ある日、以下のようなエラーログが出力された。

ざっくり和訳すると「リクエストパラメータの上限を超えました。超えた分のパラメータは無視されます。上限を変えるにはConnectorのmaxParameterCountを参照してください」とのこと。

catalina.outに出力されていたけど、特にTomcatとしてエラーになることなくこのログが出力されていた。しかし、パラメータが無視されたらまともに動かない。。。

これまでスクラッチで開発する場合は、パラメータの数は自分で把握できていたのですが、今回はある程度コーディングしなくてもいいWebアプリケーション自動生成ツールを使用したためにパラメータの数は自分で把握していませんでした。maxParamterCountのデフォルト値が10,000だったので、とりあえず20,000に変更したら解消しました。

また、これを機にmaxParamterCountに加えて、maxPostSizeも見直した方がよいことが分かりました。設定は、{Tomcatインストールディレクトリ}/conf/server.xml。それぞれの詳細は以下。

パラメータ 内容
maxParamterCount

The maximum number of parameter and value pairs (GET plus POST) which will be automatically parsed by the container. Parameter and value pairs beyond this limit will be ignored. A value of less than 0 means no limit. If not specified, a default of 10000 is used. Note that FailedRequestFilter filter can be used to reject requests that hit the limit.

→要約すると、「最大パラメータ数。超えた分は無視される。0以下をセットすると無制限。指定が無い場合はデフォルト値の10,000となる。」

maxPostSize

The maximum size in bytes of the POST which will be handled by the container FORM URL parameter parsing. The limit can be disabled by setting this attribute to a value less than zero. If not specified, this attribute is set to 2097152 (2 megabytes). Note that the FailedRequestFilter can be used to reject requests that exceed this limit.

→要約すると、「POSTリクエストの最大サイズ(バイト)。0以下を設定すると無制限になる。指定されていない場合は、2MBとなる。」

公式サイト→http://tomcat.apache.org/tomcat-7.0-doc/config/ajp.html

設定例


JavaプログラムのHTTP/HTTPS通信でプロキシを経由させる

IBMのWatson APIをいろいろ試してみたくて、職場のPCでJavaから呼び出しみたが、以下のようなエラーがでてしまった。。。

(うすうす感づいてはいたが。。。)自宅のPCでおなじJavaを動かすとなんの問題もなく動いた。(ちなみに、試したのはDocument Conversionというサービス)

つまり、職場のネットワークからだとつながらないということがわかり、職場はプロキシサーバがあるので、プロキシサーバを通すように以下のJVMのシステムパラメータを設定して動かしたところうまくいった!!

パラメータ 内容
http.proxyHost プロキシサーバのホスト名(HTTP)
http.proxyPort プロキシサーバのポート番号(HTTP)
https.proxyHost  プロキシサーバのホスト名(HTTPS)
https.proxyPort プロキシサーバのポート番号(HTTP)
http.nonProxyHosts プロキシを省略して、直接到達するホストのリスト。各ホストを “|” で区切ることで複数指定可能。

プロキシの指定の方法は2つある。

方法1:ソースコードで指定する


Javaソースの中で直接指定します。

●サンプル

方法2:起動パラメータで指定する


Javaの起動パラメータで直接指定します。

 ●サンプル

もちろん、Eclipseのプロジェクトの”右クリックメニュー” → “実行” > “実行の構成を開く” > “引数タブ” > “VM引数”で指定してもOK。

 


日々のSE業務で得たノウハウと趣味