きどたかのブログ

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

Javaプログラマーのためのjava.math.BigDecimalまとめ

以前書いたメモ的なエントリーを読み返してみて、 簡単なエントリーに書きなおそうと思いたった。 java.math.BigDecimalの構造 「精度(precision)」と「スケール(scale)」と「一般的な桁数」の違い 精度とスケールの違いを正しく把握しているかを試すのに、 …

HelloWorldで学ぶJavaのクラスファイル

暇つぶしにクラスファイルについて語ってみよう。 今回の勉強の元となるソースはこちら。 三分でクッキングできるほど甘くないですよ。 このエントリーを書くのに実際は丸一日もかけて・・・ その情熱を人材育成に使えって話だ。 ソース(便宜上、行番号を添…

USS上に日本語ファイル名でファイルを作る方法

暇つぶしにやってみました。 chcpコマンドを使います。 chcp — Set or query ASCII/EBCDIC code pages for the terminal UNIX System Services Command Referenceより TSO/E経由でOMVSを触る人は使わないでください。 chcp -q これで現在の設定を確認します…

java.util.prefsパッケージの基本的な使い方

なかなか使う機会もないパッケージです。 JDK1.4からと、思ったよりも古くからあるようです。 Windowsではレジストリが使われてます。 システムルート HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs ユーザールート HKEY_CURRENT_USER\Software\Java Soft\Pre…

WAS V7 - WMQ V7.0.1 for z/OSでありがちな失敗

少しまとめた気になってみました。 JMSプロバイダーのネイティブ・ライブラリ設定 WAS for z/OS V7からは、WebSphere変数MQ_INSTALL_ROOTからは、 ネイティブ・ライブラリのみを読み込むことのみになりますが、 JMSプロバイダーでのネイティブ・ライブラリの…

JZOSのWLM API

こういうのが出てたのは知っていたよ。 今日たまたま気になったので少し見てみた。 IBM JZOS Toolkit API これはIBM JDK 6.0.1からのAPI。 IBM: JZOS Java Launcher and Toolkit Overview WAS for z/OS V8.0なら使えるけれども、 このAPIをWAS上で使うことは…

JNIコードとSHRLIBRGNSIZE

昔、JNIコードを書いたのだが、最近になって一点考慮漏れがあることに気付いた。 正直そこまでたいそうな話ではないかもしれない。 .soに、Extended Attributesを付けることを考えてなかった。 extattrというのは、4つのオプションがある a=APF authorized p…

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人超が外で並…