ushidayの日記

主に「IBMi」のメモに・・・

AS/400にJenkinsを入れて

AS/400IBM i)にGitを入れたので、さらなる幸せを手に入れるために、Jenkinsを入れた時の事を忘れないようにメモ。

  • 実行環境
    • AS/400:OS400 V5R4M0
    • Java :/QOpenSys/QIBM/ProdData/JavaVM/jdk60/32bit/bin/java
    • Jenkins:1.464
    • Git:1.7.10

初回起動時にエラー

Jenkins初回起動時に出たエラーが以下。何か「chmod」絡みのライブラリがないっぽいけど、2回目以降は出てない。

export JENKINS_HOME=/usr/local/jenkins
java -jar jenkins.war --httpPort=8089 --ajp13Port=-1
---省略---
2012/05/09 13:32:07 hudson.FilePath _chmodAnt
WARNING: GNU C Library not available: Using Ant's chmod task instead.

プロジェクトの2回目以降のポーリングでエラー

だたビルドするだけならスンナリ動いた。
GitからClone後に初回のビルドではOK。でも2回目以降のポーリングでエラー。

    • エラーも文字化け。EBCDICで吐いてるっぽい。


初めは、JenkinsをCLからQP2SHELLで起動してたんだけど、これだと駄目。QP2TERMもQSHもモチロン駄目、ssh経由だとOK。ssh経由ならQP2TERMでもOK。(Javaの環境がネイティブから走るとダメなのかな?QP2TERMだと$HOME/SystemDefault.propertiesで何か設定しないと駄目かもしれん。)
ダサい解決だけど、ssh -Tオプション使って、スクリプト書いて、それをQP2SHELLで起動すると上手くいった。
それにしても、ジョブが一杯付いていてダサい。

MemoryMonitor警告

前述の対処で、ビルド自体は全然問題ないけど、裏で警告を吐いていて気になった。

May 18, 2012 12:54:21 PM hudson.node_monitors.AbstractNodeMonitorDescriptor$Record run
WARNING: Failed to monitor master for Free Swap Space
Throwable occurred: java.io.IOException: No suitable implementation found: os.name=OS/400 os.arch=PowerPC sun.arch.data.model=32
       at org.jvnet.hudson.MemoryMonitor.obtain(MemoryMonitor.java:86)
       at org.jvnet.hudson.MemoryMonitor.get(MemoryMonitor.java:57)
       at hudson.node_monitors.SwapSpaceMonitor$MonitorTask.call(SwapSpaceMonitor.java:103)
       at hudson.node_monitors.SwapSpaceMonitor$MonitorTask.call(SwapSpaceMonitor.java:99)
       at hudson.remoting.LocalChannel.call(LocalChannel.java:45)
       at hudson.node_monitors.SwapSpaceMonitor$1.monitor(SwapSpaceMonitor.java:83)
       at hudson.node_monitors.SwapSpaceMonitor$1.monitor(SwapSpaceMonitor.java:81)
       at hudson.node_monitors.AbstractNodeMonitorDescriptor$Record.run(AbstractNodeMonitorDescriptor.java:202)

追っていくと、topコマンドでモニターしている?っぽい。PASEにtopコマンドが無いんで、そんな感じ。AIXなら"top"入れられるみたいだけど...。

XMLのパースエラー

こっちはAS/400だからって訳じゃないかもだけど、cpdのxmlパースエラーなのか、dryプラグインで落っこってそう。まだ、全然追ってない。

EVERE: Parse Error at line 2 column 33: Document root element "pmd-cpd", must match DOCTYPE root "null".
Throwable occurred: org.xml.sax.SAXParseException: Document root element "pmd-cpd", must match DOCTYPE root "null".
---省略---
Throwable occurred: org.xml.sax.SAXParseException: Document is invalid: no grammar found.
       at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
---省略---
at org.apache.commons.digester3.Digester.parse(Digester.java:1642)
       at org.apache.commons.digester3.Digester.parse(Digester.java:1701)
       at hudson.plugins.dry.parser.cpd.CpdParser.accepts(CpdParser.java:48)
       at hudson.plugins.dry.parser.DuplicationParserRegistry.parse(DuplicationParserRegistry.java:70)

でもカナリHappy

色々あるけど取り敢えず、Git,Jenkinsも使えて、別鯖立てなくて、AS/400で全部できてカナリHappy!XD
やはり、そんじょそこらのオフコンとは、ワケが違うと言う事で、これからもAS/400を大事に育て行こうと思った今日この頃。