きどたかのブログ

いつか誰かがこのブログからトラブルを解決しますように。

2012-01-01から1年間の記事一覧

ReflectionとNative OOM

前から不思議に思ってた事が1つ分かった。 IBM Potential native memory use in reflection delegating classloaders - United States リフレクションでMethodごとにsun/reflect/DelegatingClassLoaderや sun/reflect/GeneratedMethodAccessor<N>という具合の</n>…

DB2 for z/OSのデッドロックに関与したSQLの特定方法

デッドロックの分析に関して小さくまとまった資料があるので読んでいた。 全部を説明する気がなくなるくらいさっぱりしている。 SQLを特定するまでの話で、そのSQLの何が悪いかを扱うものではない。 IBM Techdocs Technote: Identifying the static SQL stat…

Running out of ASIDs

z/OSでASIDの数が枯渇するという話です。 2年くらい前に開発環境構築後に経験したことを 今の知識で補足して書いてみようと思う。 ASIDの数は有限で、再利用出来るのと、再利用出来ないのがある。 WAS for z/OSを導入後、MQをBINDINGS MODEで繋ぐため、 JCL…

STOPコマンドでWASが停止しない時の正しい対処

開発環境では結構起ってると思う事象で、 これが本番で起きたらどう対処するべきかを考えていた。 多くの人が取る行動は以下のものだと思う。 ダンプを取る CANCELコマンド (それでも駄目なら)FORCEコマンド 惜しい、これでは80点。 ここから少しだけ私の提…

MQ GTFトレースを読めるようになるには

素人でもMQODとMQMDとMQGMOとMQPMOくらいは読めるようになる。 どういう情報を見てトレースを読めばいいかということを書いてみる。 要領としては3点 項目数を理解する 項目に使われるバイト長を理解する ビットで理解する このWSTEに出てくる値を材料に説明…

WAS for z/OSでのTIMEOUTの調査方法

よくある問題であるため、調査方法はシンプル。 まずはこれを読むのが一番いい。 Webcast Replay: Diagnosing Timeouts in WebSphere Application Server for z/OS http://www-01.ibm.com/support/docview.wss?uid=swg27007547 少しだけ補足してみる。 IP VE…

JIT Compiler Testarossaとjavacore

Testarossaについてはあまり資料が見当たらないのだが、 少しだけ気付いてることはあるので書いてみる。 一年か二年前にも実験してたが、今回気が向いたので、理解を深めてみた。 WAS8.0からJ9のバージョンはR26になり、 どうもJITコンパイラであるTestaross…

z/OS USSでのpsコマンドのオプション

暇つぶしにz/OSでしか使えないようなpsコマンドのオプションを少し書いてみる。 何を書くかというと、-oオプションについて。 詳しくはUNIX System Services Command Referenceを読めばいい。 個人的にこれまで使ってるのはこんなのとか。 args,xasid,jobnam…

ラージ・ページ・サポート(-Xlp)の考察

SRに-Xlpで1MBのFRAMEを取れないって事象を調べている。 前から疑問だった、-Xlp指定してないのにCRが1MBのFRAME取ってる件もついでに調べている。 少し理解が深まった気がする。 まず-verbose:gcでrequestedPageSizeとpageSizeは確認している。 確かに1MBの…

MDBの性能を処理対象データに基づいて計測する方法の考察

z/OSではRMFを使って性能測定をするのが普通のようで、おそらくどこでもやっているだろう。 どれだけ性能分析をカテゴライズ出来るかに興味がある。 性能分析といっても色々あるからな・・・、 ここではアプリケーションの立場からの分析を補助出来るか否か…

ICH408I INSUFFICIENT AUTHORITY TO STAT

意外と単純、z/OSのUSS環境でよくある問題です。 しかし、なぜか調査方法が人によって違うと感じてます。 だいたいの人が間違った方向へ進み無駄に時間を浪費する。 なので自分なりの方法およびその解決までの思考を纏めておこうと思う。 一番よく見るメッセ…

SVCダンプを読むための知識

まだ全然読めてるとは言いがたい部分があるが 前回(SVCDUMPを読むための初歩 - きどたかの日記)から多少は詳しくなった気がする。 コントロールブロックを読むためには、その構造を知った方が良いと自分は考えていて、 コントロールブロックの関係性をちょっ…

今日のClassNotFound解析(難易度:初級)

ClassNotFoundは解析が簡単な問題のひとつです。 それはたとえWASのクラスであってもです。 ClassNotFoundの問題を自力で調べられないようではまだまだお子様でしょう。 まず初めに、どのクラスが見つからないかがメッセージで出てるでしょう。 次にやること…

WASzのCTRACEのセットアップ

過去に自分でも経験したことなので書いてみる。 cell-scopeのWebSphere変数Daemon_ras_trace_ctraceParmsのやつです。 初期のセットアップでは60が設定されるでしょう。 これでPARMLIBからCTIBBO60を探します。 あと勝手にCTIBBO00も探します。 無かったらIN…

今日のOOM解析(難易度 初級)

OutOfMemoryErrorがきた。 まずGCログを見る。 Javaヒープ足りてるな。 じゃあネイティブが怪しいんだろ。 それにしてもafの他にsys出てるけど何でSystem.gc()とか使ってるんだろう。 MQとDB2の設定をわかる範囲でかき集める。 一般的にネイティブは、Javaの…

JZOSのZUtilのsubstituteSystemSymbolsについて

使ったことはないけれど、その使い方を書いてみる。 理屈として、IEASYMxxにおけるSYMDEFと同じと思われる。以上、説明終了w &SYSNAME &SYSCLONE &SYSPLEX &SYSR1 &SYSALVL および、SYMDEFで定義したものが取れると思う。 取れるだけじゃなくて、substring…

WMQやDB2などのCPF(Command Prefix)について

CPFについて調べてあることを書いてみる。 CPFは、WMQやDB2にコマンドを打つ時に使うやつだ。 いきなりで申し訳ないが、CPFというアセンブラのマクロがある。 どうやらこのマクロでCPFを登録しているようだ。 CPFは、IEFSSNxxで登録する。普通はSYS1.PARMLIB…

WASzにおけるSTOKENについて

WebSphere Application Server for z/OSを使っていると、 STOKENという言葉に出くわす人がいると思う。 STOKENはSpace Tokenの略だと思われる。 Address SpaceやData Space毎に持ってるTokenということだ。 ASCRE macroのOutput ParameterにODAというのがあ…

SVCDUMPを読むための初歩

絶賛IPCS勉強中。相変わらず独学が多い。 今日、少し参照したマニュアル。(たぶん誰も読まないと思う) z/OS V1R12.0 MVS Data Areas, Vol 1 (ABEP-DCCB) z/OS V1R12.0 MVS Data Areas, Vol 2 (DCCD-IEFDOKEY) z/OS V1R12.0 MVS Data Areas, Vol 3 (IEFDORC…

証明書がらみのRACFコマンド

証明書がらみのことを最近やっているので、ちと書いてみる。 詳しいことは、次のドキュメント等を読もう。 Security Server RACF Command Language Reference ※マニュアル WebSphere Application Server V7.0 Security Guide ※Redbook Encryption Facility f…

WASzのデバッグポート

思い出したかのように、昔の引き出しからどうでも良い情報を書いてみる。 サーバーのページで、デバッグサービスを使うのが普通。 しかし、SRが複数あるとこれではダメ。ポートが重複して、残りのSRが起動出来ない。 そんなこんなで周りに人にはデバッグする…

WASzにおけるWLMの使われ方のイメージ

これは自分の中のイメージであって、正しいというわけではありません。 アメリカに来る前から抱いているイメージです。 きっとほとんどの人がちんぷんかんぷんな内容になるでしょう。 WASzは2つのWLMサービスを使用していると思う。 1つはQueuing Manager Se…

J1ビザの面接

昨夜の雪で、今日のダイヤは乱れていた。 新橋から銀座線で1駅の虎ノ門まで行こうと切符を買ったが、改札を通る前に、ホームに降りられず、改札の目の前まで人集りが出来てるのを見て、アメリカ大使館には歩いて行くことにした。 この寒い中、30人超が外で並…

Javaにおける定数

「定数」という言葉の定義が意外と曖昧ではないだろうかと昔から思っていた。 「定数はstatic finalで宣言する」というマニュアル的な表現に疑問を思ってきた。「static final宣言したものは、定数とは限らない」 static final String A; static{ A = "HOGE"…

Java7のString Switch

家で試してみました。サンプルで書いたコード。 "1a"と"2B"は同一ハッシュコード1616です。 private String test1(String val) { String ret = null; switch (val) { case "1a": ret = "match 1a"; break; case "2B": ret = "match 2B"; break; default: ret…

staticメソッド/変数について思うこと

しばしばこの思いを忘れてしまうのだが、 staticメソッドはあまり使いたくないな、と思うのが本音。 よく共通的な役割を持つメソッドを、superクラスに持たせるか、Utilityのstaticメソッドにするか悩む。 無論、クラスの役割として意味のあるものであればsu…

仕様を網羅することの難しさ

何年前に下書きして放置したのか覚えてないけど、せっかくなのでUPしとく。 書こうと思ったことが思い出せないけど、 「空白文字とは」うんぬんの事は伝えておきたいことだから。 自分が書いた部分のコードを、ある特定のクラスの特定メソッド内に閉じたらば…

検査例外と非検査例外、あとエラー。

なんで正月にこんな事書いてるんだろうか・・・。 長年Javaをやっていても、「検査例外」と「非検査例外」の使い分けにコレと言った答えが出ない。 個人的には「検査例外」を好む。 誰かが作ったプログラムの「非検査例外」をcatchしないといけない状況に陥…