読者です 読者をやめる 読者になる 読者になる

きどたかのブログ

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

z/OSのC言語でウカツにsleep関数使った話

やりたいことは単純だ。USSの特定のフォルダに、特定のファイルがあったら、1秒スリープしてループする。ファイルがなくなったらループ終了。原案を作るのにUSSにsshログインして、ぺぺぺっとviで書き上げた。ほとんどマニュアルの例。USS上で実際に動く。使…

Gradle MVS Dataset Plugin試作品 - Gradle Nested Container

データセットをgradleから作るようにする。 必要となるもの: gradle ssh plugin USSのtsocmdコマンド TSO/E ALLOCATEコマンドの知識仕組み: Linux/Windowsでgradleを動かして、z/OSにsshしてtsocmdでデータセットを作成する。 こんな感じでbuild.gradleに…

JenkinsとGradleとz/OS

z/OSをJenkinsスレーブにするのは億劫だ。過去にJNLPでやったことはある。今回は真っ向勝負でsshでスレーブにすることを試している。現在一番参考になるのはコレ。https://issues.jenkins-ci.org/plugins/servlet/mobile#issue/JENKINS-13091Jenkinsのマスタ…

zWASっぽくプロファイルを作る試み

zWASは、プロファイルのディレクトリ構成がLUWのものと違う。LUWの場合/opt/IBM/WebSphere/AppServer/profiles/Dmgr01/opt/IBM/WebSphere/AppServer/profiles/AppSrv01z/OSの場合/wasv85config/セル名/デプロイメントマネージャーノード名/DeploymentManager…

z/OS上のJavaのスレッドに関すること

基本的にJavaスレッドは、TCBに関連付いている。 ただ、javacoreを見る限り、Javaから見えてるNativeスレッドというものは、 USSでいうところのスレッドを指しているようだ。 z/OSには、TCBやSRBみたいなものはあるが、 もともとUnix由来のプロセスやスレッ…

CANCELコマンドでも死なない実行グループの殺し方

ごくごく稀にではあるが、同名の実行グループが2匹存在することがある。 頻度的には非常に少ない。 1年に1回か2回くらいだろう。 これを再現するのはたぶん大変。 まあ、やろうと思えばやれるかもしれん。 それはそれとして、この事象が起こるとCANCELでも殺…

CMP Applicationをz/OSのUSS上で動かく方法

ConfigManagerProxy.jarを使って、 WebSphere Message Brokerを管理するのは、 WMBを使ったテストの自動化する上では必要なやり方だろう。 CMPアプリケーションを書く人も少なく、 しかもz/OS上で動かすとか普通しないだろうなぁ。 ははは、役に立たないブロ…

シノニムとdb2sqljcustomize

DB2の接続ユーザ(CONNUSER)と、スキーマ(SCHEMA1)が異なる場合に、 SCHEMA1スキーマからシノニムで別スキーマ(SCHEMA2)のテーブルに飛ばしていると、 sqljのカスタマイズ&バインドに失敗する。 これはcurrentSQLID=SCHEMA1をurlに指定することでしか回避でき…

DB2トリガーMDBを考えてみる(z/OS)

可能性は2つかな。 DB2トリガーをいずれも使う。 片方はJavaプロシージャを使って独自JMS。 もう一方はMQ関数を使う、DB2で。 後者の方が面白そうだ。 WebSphere Message Brokerなんかは、DatabaseInput Nodeがあるが、 あれはプル型な動きをするので、今回…

変な前提PTF

今日調べ物をしていたら、変な前提PTFを見つけた。 RSU1303のPTFが、RSU1306のPTFを前提にしている。 ふむ、後者のPTFは3月時点で存在していたんだろう。 じゃないと無理だろう。 でも、3月の時点でRSU番号がアサインされていなかったんだろう。 一緒にRSU13…

JCL Submitと自動化の話

FTPのJESINTERFACELEVEL=2を前提として、 quote site filetype=JESにしたのち、 JCLをputすることで、submitする方法もあるのだが、結果を取得するのに向かない。 USSのsubmitコマンドを使うのがいいだろう。 submitコマンドにはUSSのファイルパスも受け付け…

そろそろPTFをShopzから入手しようか

仕事柄、IBM Support PortalからService Requestをオープンして、 問題事象の修正としてAPARをもらうことが多いんだが、 よく前提PTFが足りてないことがある。 現状は、サポート契約の範囲で、別途お願いして前提PTFを用意してもらってるんだが、 なんか時間…

本日の解析

1個目朝、WASのDmgrが起動できなくなっていた。device allocation errorなJCLエラー。applyPTF.outが無い。つーか、それより上のディレクトリからない。パーミッションどころの話じゃない。ん?誰か大胆にも消した?そんなバカな。他の可能性を考える。マウ…

chtagの実験

まだ全部実験してないが、まずは感触が分かった。使ったのはgrepとsh。chtag -tc 819したアスキーファイルからの文字列のgrepに成功。同じくシェルの実行に成功。ただし、chtag -tc 1208したアスキーファイルでは失敗。中身には数字しかないのにgrep出来ず。…

DB2 for z/OS JDBC Type2でよく見る失敗

いくつかのよくある失敗の話。初期に一番多く発生するのは、ssidを指定していない、もしくは間違って指定している。flowConnectとか出てたら疑う。db2.jcc.ssidはType2で必要な設定。データソースのプロパティにも出来るが、クラスタスコープのデータソース…

システム名とシェル

命名規則次第なんだが、システム名の一部をデータセット名やUSSのパスに含む時、それをどうやって解決するのがいいかという考察。これはJavaだったらJZOSでシステムシンボルから取る方法がある。今回はシェルでやる方法の話。ホスト名はきっとシステム名だ。…

z/OSのUSS上でASCIIファイルを開く

viasciiをご存知だろうか?USS上で使えるオモチャだ。とくにサポートはない。しかし、内容的にviasciiにサポートはいらないだろう。viasciiはコマンドのように思えるが、ただのシェルでしかない。SMP/Eなんて使わない。FTPでUPして、パーミッション変えて、P…

z/OSをjenkinsのslaveにする

いくつかの方法を試したが、成功と呼べそうなものは1つ。JNLP経由でスレーブ起動。スレーブであるz/OSには、ブラウザもないし、Xもないので、おのずと事前にスレーブ上でjavaコマンドを叩くことになる。その際に-Dfile.encoding=ISO8859-1を渡すと、とりあえ…

Segment Translation Exception(セグメント変換例外)の考察

営業日にして10日間であったが、 日本に帰国していたとき、ラストのほうでダンプを読んでいた。 そこでひとつ間違えたことがあった。 0C4の10や11は、Failing Instructionを通り過ぎないそうなのだ。 だから、ILC分戻るのは間違いだった。 その間違いは、イ…

Are You WAS?

iPhoneアプリのご紹介 Are You WAS? 日本に帰国してた時に後輩が言っていたiPhoneアプリ。 WAS for z/OSネタが入ってるクイズアプリです。 比較的簡単です。 初見で正解18問/20問中でした いまのところ、問題は全部で100問あるようです。 ちなみに自分が間違…

ibm.swapLFについて<続々>

ibm.swapLFにかかりきり。 System.outに使われるクラスが、 WAS for z/OSでは普通のプラットフォームとは違うクラスであることが分かった。 USSでWAS付属のjava叩いても、WAS上とは違いがでる。 com.ibm.ws390.SystemOutErrCodepageというプロパティがあるこ…

JZOSでデータセットの動的アロケーション

日本に帰ってきてて、 息抜きもかねて動的アロケーションするコードを書いた。 しかし、失敗。およよ? JZOSで動的アロケーションの方法として考えられるのは2種類ある。 自分の過去の経験だと片方(bpxwyn)がうまくいかなかったので、 com.ibm.jzos.AccessM…

ibm.swapLFについて<続>

ibm.swapLFのつづき。 別に進展らしい進展はないのだけれど、 気になったことが増えたので書いておく。 0x15(EBCDICのNL)を0x25(EBCDICのLF)に変えるこのプロパティ。 分散系との互換のためにあるのだと思っていたらどうも違うっぽい? java.nioのおさらいも…

ibm.swapLFについて

ibm.swapLFなるものを調査する機会があった。 正直まだよく分かってない。。。 IV18977: IMPLEMENTING SWAPLF FUNCTIONALITY FOR IBM-037 CODEPAGE このへんの話だ。 ちょっと表を添えておくよ。 EBCDIC ASCII CR 0x0D 0x0D LF 0x25 0x0A NL 0x15 この-Dibm.…

WAS for z/OSのJMSトレースを読み耽っていた二日間の収穫

先にいっておくと、別に答えらしい何かはあまりない。 ろくな資料が手元になく、 唯一意味があったのがJMSトレースを含むログだけだった。 トランザクションとJ2Cもたぶん入ってた。 一時的な性能劣化。 そういう時はなにを疑うだろうか。 GCか? おこってな…

ABEND S0C4の調査

Javaプログラマーがどうにかできるものではありません。 十中八九ミドルのバグです。 それでも原因を深く知りたいと思う人は、 まずはS0C4の意味を知ろうとするでしょう。 先頭のSはSYSTEM COMPLETION CODEの意味。 z/OS V1R12.0 MVS System Codes これに載…

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

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

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…

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が起動出来ない。 そんなこんなで周りに人にはデバッグする…