2022年09月06日

[WebSphere][DB2] SQLのタイムアウトについて

せっかく調べたので、備忘録。

・接続時
 ConnectionPoolの接続タイムアウト(WAS)
 loginTimeout (JDBCプロパティ)

 両方設定されている場合、ConnectionPool設定 が上書きする。

・照会時
 
(1)Statement/PreparedStatement/CallableStatement に対する setQueryTimeout
(2)WebSphere データ・ソースの webSphereDefaultQueryTimeout カスタム・プロパティー
(3)Jcc ドライバーの commandTimeout カスタム・プロパティー

(1)>(2)>(3) の順番で上書きされる。(1)1,(2)2、(3)3の場合、1秒ということ。
ユーザーコードが一番つよい

(2)については、syncQueryTimeoutWithTransactionTimeoutがtrueの時は JTA トランザクションにおける残り時間
で上書きされる。(XAの時だけ、通常時は関係ない)

発砲時のSQLCODEはJDBCドライバのqueryTimeoutInterruptProcessingModeにて変わる。
zの場合は-30108
queryTimeoutInterruptProcessingMode 値が INTERRUPT_PROCESSING_MODE_STATEMENT_CANCEL (1) の場合、-952 が返されます。
queryTimeoutInterruptProcessingMode 値が INTERRUPT_PROCESSING_MODE_CLOSE_SOCKET (2) の場合、-30108 が返されます。

(参考)
https://www.ibm.com/docs/ja/db2-for-zos/11?topic=pdsdjs-common-data-server-driver-jdbc-sqlj-properties-all-database-products

 timerLevelForQueryTimeOut がQUERYTIMEOUT_DISABLED (-1) に設定されていると機能しない。
 タイマーがたくさん作られてしまい、JVMのパフォーマンス劣化したときの奥の手だが
 Connection.isValid とかも使えんくなる。ダメじゃん。

 参考
 https://www.ibm.com/support/pages/db2-jcc-%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC%E3%81%AE%E7%85%A7%E4%BC%9A%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%A2%E3%82%A6%E3%83%88%E7%94%A8-timer-%E3%81%8C%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%81%AB%E4%B8%8E%E3%81%88%E3%82%8B%E5%BD%B1%E9%9F%BF

・通信時

 (1)keepAliveTimeOut(TYPE4)
 (2)DB2TCP_CLIENT_KEEPALIVE_TIMEOUT/DB2TCP_SERVER_KEEPALIVE_TIMEOUT (DB2レジストリ変数)
 (3)tcp_keepidle/tcp_keepintvl/tcp_keepcnt(OSのTCPkeepalive、これはAIXのパラメータ)

これは(3)が(1)or(2)で上書きされる。しておかないとすっげぇ待つよ。(2時間とか)
 

・通信時(TCPは正常でDBがなかなか応答かえしてくれない時)

 blockingReadConnectionTimeout(TYPE4)
 DB2TCP_CLIENT_RCVTIMEOUT(TYPE2、DB2レジストリ変数)


困ったときはこのtechnote
https://www.ibm.com/support/pages/db2-jdbc%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%83%BC-%E3%82%BF%E3%82%A4%E3%83%A0%E3%82%A2%E3%82%A6%E3%83%88%E9%96%A2%E9%80%A3%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BFdm-14-004


posted by koteitan at 11:41| Comment(0) | TrackBack(0) | 情報処理 | このブログの読者になる | 更新情報をチェックする

2020年02月04日

Windowsでコマンドの時間計測

linuxとかだとtimeコマンドで測れますが、windowsにそんなものはない。
timeと打つとこんなふうに時刻設定になるだけだ。MS-DOS時代から変わっちゃいねぇ。

>time
現在の時刻: 14:26:19.61
新しい時刻を入力してください:


リソースキットとかなんらかのフリーソフトなどでも実現はできるが
会社とかだと許可が下りず両手を縛られた開発環境もあるでしょう。

そんなときにはPowershell測れるみたい。
試してみたが、それなりに使えそう。

>powershell -C Measure-Command { java TestCPU 1 }


Days : 0
Hours : 0
Minutes : 0
Seconds : 27
Milliseconds : 830
Ticks : 278309811
TotalDays : 0.000322117836805556
TotalHours : 0.00773082808333333
TotalMinutes : 0.463849685
TotalSeconds : 27.8309811
TotalMilliseconds : 27830.9811

>powershell -C (Measure-Command { java TestCPU 1 }).TotalSeconds
25.5183558

こちらの記事を参考にさせていただきました。

cmdで簡単な処理時間計測
https://qiita.com/kazufusa/items/40caaf192e7f719bc1bd
posted by koteitan at 14:32| Comment(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2020年01月15日

Windows(仮想環境)での強制ダンプ操作について

昔は、レジストリを設定してから、ctrl+scrLock連打とかやったような(´・ω・`)
HWからの割り込みで強制トラップなんやろうけど。

んで、最近は物理のほうが珍しくてまぁ大体は仮想化しますやろ?
そういうときはそのHW割り込み的なものをホストから仮想信号で送りつけるという
エミュみたいな感じでやるようです。

IBMさんのがわかりやすいかな。各社出てるので探してみてくださいな。

[Windows Server]強制メモリダンプ取得方法 (仮想環境)
https://www.ibm.com/support/pages/windows-server%E5%BC%B7%E5%88%B6%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%80%E3%83%B3%E3%83%97%E5%8F%96%E5%BE%97%E6%96%B9%E6%B3%95-%E4%BB%AE%E6%83%B3%E7%92%B0%E5%A2%83
posted by koteitan at 17:24| Comment(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2019年12月24日

Windowsだけでパケットキャプチャする方法

Wiresharkが入ってない!
でもキャプチャ見ればすぐわかるはずなのに!
というかゆいところに手が届くTips。はやく出会いたかった。


netsh コマンドで採取したパケットキャプチャーファイルを、Wireshark で開けるファイル形式に変換する Microsoft 公開のツール:etl2pcapng
https://troushoo.blog.fc2.com/blog-entry-416.html

有益な情報ありがとうございます。



コマンドコピペ用メモ

netsh trace start capture=yes
netsh trace stop
etl2pcapng.exe NetTrace.etl NetTrace.pcapng
posted by koteitan at 16:45| Comment(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする

2019年12月18日

【DeepLearning】scikit-learnで警告が出て鬱陶しいとき

/lib/python3.6/site-packages/sklearn/externals/six.py:31: FutureWarning: The module is deprecated in version 0.21 and will be removed in version 0.23 since we've dropped support for Python 2.7. Please rely on the official version of six (https://pypi.org/project/six/).
"(https://pypi.org/project/six/).", FutureWarning)


こんなのがひたすらでて鬱陶しいときは、警告を無視してしまえばいいんだ!(あかん
将来は使えなくなるよ!って警告だから勉強用の書捨てスクリプトではまぁどうでもいいかと。

消し方
コードのどこかに以下を入れる

# import warnings filter
from warnings import simplefilter
# ignore all future warnings
simplefilter(action='ignore', category=FutureWarning)


こちらで見つけましたん。

How to Fix FutureWarning Messages in scikit-learn
https://machinelearningmastery.com/how-to-fix-futurewarning-messages-in-scikit-learn/

I am very grateful for your article!!
posted by koteitan at 16:25| Comment(0) | Deep Learning | このブログの読者になる | 更新情報をチェックする

2019年12月16日

【DeepLearning】scikit-learnがAnacondaでうまく入らないとき

scikit-learnとかpandasとかをconda install で入れようとしたら、競合がどーだこーだと
エラーになりよった。
conda crate -n のときにpythonのバージョン指定しなかったから、
非互換のライブラリがワチャワチャするみたい。

以下でうまく行きましたよ、と。

conda create -n dp python=3.6
conda activate dp

conda install scikit-learn
conda install pillow
conda install pandas
conda install ipython
conda install matplotlib

※numpy と scipy は scikit-learnのときに勝手に入りました。

あとはjupyter入れて完了。

conda install jupyter


(`・ω・´)

しかし、これDeeplearning全然関係ない気がしないこともないな。
posted by koteitan at 16:53| Comment(0) | Deep Learning | このブログの読者になる | 更新情報をチェックする

2019年12月12日

【WebSphere】JSPバッチコンパイル

おじさんが勉強した昔は、JSPは/temp にコンパイルされてた気がするんだが
9.0とかではデフォルトはWEB-INF/classesに出すようになってんだな。

https://www.ibm.com/support/knowledgecenter/ja/SSEQTP_9.0.5/com.ibm.websphere.base.doc/ae/cweb_jspclassfiles.html

tempを探してWeb-infを探すわけやな。
ClassLoader分離上の都合とかそういう背景だろうか・・。うーん。バージョンいつからの仕様なんだろ。


https://www.ibm.com/support/knowledgecenter/ja/SSEQTP_9.0.5/com.ibm.websphere.base.doc/ae/rweb_jspbchtl.html

compileToWebInfオプションがTrueの場合(デフォルトTrue)はWEB-INF側に出す、
falseやcompileToDirでtempを指定するとtempに出す、という仕組みのようですな。

tempの場所を変更するにはJSPエンジン設定のscratchdirですかなー。
https://www.ibm.com/support/knowledgecenter/ja/SSEQTP_9.0.5/com.ibm.websphere.base.doc/ae/rweb_jspengine.html

システムプロパティ com.ibm.websphere.servlet.temp.dir より優先ってあるから
触るときは注意ですな。まぁ、こんなの触らないだろうけど・・。
posted by koteitan at 15:05| Comment(0) | WebSphere | このブログの読者になる | 更新情報をチェックする

2019年08月07日

[WebSphere]pluginをマージする方法

昔はこんなのなかった気がするが、時代かなー・・。

https://www.ibm.com/support/knowledgecenter/ja/SSAW57_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/twsv_configsimplelb.html

https://www.ibm.com/support/knowledgecenter/ja/SSAW57_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/twsv_merge_configfiles.html

v7の場合は、ちょっとコマンドが違います。
pLuginMerge.sh (bat) です。

もちろんviとかemacsとかpythonとかでちまちまやってもよいです。


posted by koteitan at 10:34| Comment(0) | WebSphere | このブログの読者になる | 更新情報をチェックする

2019年03月11日

POSTがGETで再送、、、だと、、

なんだかね、そんなのありえないって思うでしょ。
redirectするとPOSTがGETになってしまう、ってのは昔からよく聞く話だけど、
そうじゃないんだよね。(´・ω・`)

IEで回線不安定なとき(WiFiとか)、POST完了前にonline→offline→onlineって
ステータスが変化すると、ononLine event がwindowまで伝わって画面のリフレッシュが入り
GETでアクセスする?みたいな動きをする。(refererも無しになるから、bookmarkから来たように見える)

めちゃくちゃ探したけど、どこにも仕様と書いてないし、新しいめのIEでしか起きない。
WEBの世界は進歩著しいからサボるとすぐに原始人だよ。

https://technet.microsoft.com/es-es/cc304127(v=vs.71)

https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/Online_and_offline_events

の、「You need to know when the user comes back online, so that you can re-synchronize with the server.」の解釈かなー・・・。


で、

解決方法というかこの動作を止めるにはこのレジストリみたいなんだけど、
「FEATURE_AJAX_CONNECTIONEVENTS」

https://docs.microsoft.com/en-us/previous-versions//cc304129(v=vs.85)

めっちゃ頑張って英語よんだけど、なぜ止まるのかわかんね。
たぶんeventがでなくなるから、body.ononline() とかが動かなくなって、なのか。。。(´・ω・`)?


このキーで検索してみると、FBで遅くなるとかはヒットするけどなんで?はわからん。

https://answers.microsoft.com/en-us/ie/forum/ie8-windows_xp/in-internet-explorer-8-some-web-sites-eg-facebook/37c3d3b9-740b-428d-bf75-f01b954847a1?messageId=39ca78f0-8087-4dca-b8e1-15ad8cd6f5c4&page=1

https://answers.microsoft.com/en-us/ie/forum/ie8-windows_xp/recently-internet-explorer-8-has-been-running-slow/de4b9100-b73c-4244-9a54-af9b18d9c77f?page=6&tm=1325274615182

セキュリティ的な話を考えてみると、POSTがGETになったとしてもパラメータがQUERYに変換されるわけでもないし、
サーバー側(アプリ側)が適切にPOST/GETの分別していればよいだけだよな。
多重送信になるがな、ってのもあるけどそもそも切断されたときにしか出ないからDOS的な大量アクセスがくるわけでもない。
なんで目くじらたててんの?って、うん、俺も思う。

うん、すまない。久しぶりの更新がこんなクソもやもやで。(´・ω・`)
posted by koteitan at 17:05| Comment(0) | 情報処理 | このブログの読者になる | 更新情報をチェックする

2018年11月14日

バイナリ表示

ファイルをバイナリで見たいがバイナリエディタはない。
ターミナルはある、そんな限定的状況での備忘録。

od -tx1a FILE
od -tx1 FILE

めもめも。
posted by koteitan at 13:18| Comment(0) | プログラム全般 | このブログの読者になる | 更新情報をチェックする