2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WebSphere Application Server Liberty Base - JCA接続環境構築メモ

Posted at

#はじめに
WebSphere Application Server Liberty Base の環境整備のログです。
ここでは、WAS Libertyの環境整備と合わせて、JCA(JavaEE Connector Architecture)を使用して、CTG(CICS Transaction Gateway)経由でバックエンドCICSへのアクセスを試します。
CTG提供のIVT(Install Verification Test)用のアプリを動かすところまでやってみます。

ここでは主にLiberty部分の構成にフォーカスしています(CTG/CICSの詳細は割愛)。

使用している主なコンポーネントのバージョンは以下の通りです。
WebSphere Application Server Liberty Base V9.0.5 for Windows/Linux
CTG V9.1 for Linux
CICS TS V5.4 for z/OS

#参考情報

WebSphere Application Server Liberty Base
WebSphere Application Server Developer Tools for Eclipse
Java EE 7 Technologies
Java EE 8 Technologies

#事前確認
Libertyがサポートするフィーチャーについて。
以下を参照すると、WAS Libertyにはいくつかエディションがあって、WAS Liberty CoreはJCAのフィーチャーはサポートされないようです。
WebSphere Application Server Liberty Base - Libertyフィーチャー
なので、今回はWAS Liberty Baseを利用します。

#開発環境セットアップ(Windows)
全体像
image.png

##Eclipse導入
今回は日本語プラグインが含まれたPleiadesを使うことにします。
以下からダウンロード
Pleiades All in One ダウンロード
今回は、2020年4月時点の最新を使います。Eclipse2020(最新版/リリース 2020-03)を選択し、Java - Full Edition - 64bit をダウンロードします。
zip形式なので、適当なディレクトリに解凍すればOKです。

解凍したディレクトリ下のeclipse\eclipse.exeを実行して起動します。

バージョン情報確認
image.png

##Liberty環境の整備

参考:
Liberty 開発者ツールおよび Liberty (オプション) のインストール
WebSphere Application Server Developer Tools for Eclipse - Installing from downloaded installation files

###Eclipse上にWebSpher Liberty Developer Toolの導入
以下のサイトから、上で導入したEclipse2020-03(4.15)用のToolをダウンロードします。
WebSphere Application Server Developer Tools Releases
ダウンロードしたファイル: libertytools-update-site_20.0.0.3.v20200309_1000.zip

Eclipseを起動し、ヘルプ-新規ソフトウェアのインストールを選択して、追加をクリック
image.png

アーカイブをクリック
image.png

上でダウンロードしたzipを指定
image.png

インストールする項目を選択して次へ
image.png

そのまま次へ
image.png

ライセンス確認して完了
image.png

完了したらEclipse再起動
image.png

###Libertyの導入
参考: 開発者ツールを使用した Liberty サーバーの作成

JavaEEパースペクティブを開き、サーバービューで、「...新規サーバーを作成して下さい」のリンクをクリック
image.png

Liberty Serverを選択
image.png

Install from an archive or repositoryを選択し、java8を選択。
image.png

インストール先とRuntimeを選択。Runtimeは、ここでは製品提供のArchive Install用のjarを選択。
image.png

Base Bundle, Java EE 8 Full Platform Bundleを選択
image.png

ライセンスの確認
image.png

サーバー名を指定して完了
image.png

image.png

Libertyサーバーが作成される
image.png

###LibertyのログをUTF-8に変更

Libertyのログの文字コードは、WindowsだとデフォルトのSJISが使われます。今回はUTF-8で統一するので、そのための設定変更をします。
WAS Libertyの導入ディレクトリ下に、「usr¥servers¥server_name」というディレクトリができているので、そこにjvm.optionsというファイルを作成します。

jvm.options
-Dfile.encoding=UTF-8

##その他Eclipseの設定
###Eclipse Workspaceの文字コードがUTF-8であることを確認
ウィンドウ - 設定 - 一般から、テキスト・ファイル・エンコードがUTF-8になっていることを確認。
(デフォルトでUTF-8になってたが、違っていたら変更)
image.png

#CTG/CICS構成
以下の構成を行っておく。ここでは詳細は割愛
CTG/Linux --- (ECI over TCP/IP) --- CICS/zOS

CTGはリモート接続できるようにGateway Daemonを起動しておく。
また、CTG提供のIVT(Install Verification Program)を動かすために、CICS側にはCTG提供サンプルEC01というCOBOLのCOMMAREAプログラムを配置し、動く状態にしておく(コンパイル/リンクし、プログラム定義を作成)。

参考: JCA resource adapter installation verification test (IVT)

ちなみにここで使用している各コンポーネントのバージョンは以下の通り。

  • CTG側
    RHEL 7.6
    CTG V9.1

  • CICS側
    z/OS V2.3
    CICS TS V5.4

開発環境のLiberty(Windows)へのIVTセットアップ

参考:
Using JCA with the CICS TG in WebSphere Liberty Profile
WebSphere Application Server Liberty Base - Configuring and deploying a basic JCA ResourceAdapter

Libertyフィーチャーの追加

今回稼働させるアプリはCTG提供のIVT(Installation Verification Test)用のプログラムですが、これはEARファイルで提供されており、中身はJSP, Servlet, EJBで実装されています。かつ、JCAによりCTG/CICSアクセスが行われます。このアプリ稼働に必要なフィーチャーを追加しておきます。

server.xmlに、以下のフィーチャーを追加
jca-1.7, jndi-1.0, servlet-3.1, jsp-2.3, ejb-2.3, localConnector-1.0
image.png

server.xmlに追加される定義はこちら。

server.xml
...
    <featureManager>
      <feature>jsp-2.3</feature>
      <feature>localConnector-1.0</feature>
      <feature>servlet-3.1</feature>
      <feature>jca-1.7</feature>
      <feature>jndi-1.0</feature>
      <feature>ejb-3.2</feature>
    </featureManager>
...

Resource Adapter設定

作成した開発環境用Libertyサーバーの構成ファイル(server.xml)に、CTG提供リソースアダプターを追加する。
CTGインストールディレクトリ下のdeployableから、cicseci.rarをコピーして、Liberty導入ディレクトリのuser\shared\resources\以下に配置する。

Eclipseのサーバービューからサーバー構成をダブルクリックし、リソースアダプターの定義を追加する。
image.png

server.xmlに追加される定義はこちら。

server.xml
...
    <resourceAdapter id="eciResourceAdapter" location="${shared.resource.dir}/cicseci.rar" autoStart="true" >
...

Connection Factory設定

server.xmlに以下の定義を追加。

server.xml
...
    <connectionFactory id="cicseci" jndiName="ECI" >
    	<properties.eciResourceAdapter connectionUrl="tcp://aha00527" portNumber="12006" serverName="CT54D4A1"/>
    </connectionFactory>
...

JNDI名は"ECI"で固定(IVTで参照する名前に合わせる)。
connectionURLには、CTGのホスト名(アドレス)、portNumberはCTGがListenしているポート、serverNameには、ctg.iniに定義しているサーバー名(接続先CICSを示す)を指定する。

参考: ECI resource adapter deployment parameters

アプリケーションの設定

CTGインストールディレクトリ下のdeployable以下に提供されるIVT用のアプリECIIVT.earを、テスト用Liberty導入ディレクトリ下のuser\shared\apps\に配置する。

server.xmlにWebアプリケーションの定義を追加する。
image.png

クラスローダーを追加
image.png

server.xmlに追加される定義は以下の通り。

server.xml
...
	<enterpriseApplication location="${shared.app.dir}/ECIIVT.ear">
		<classloader classProviderRef="eciResourceAdapter"></classloader>
	</enterpriseApplication>
...

まとめ

最終的に作成されるserver.xml

server.xml
<server description="new server">

    <!-- Enable features -->
    <featureManager>
        <feature>jsp-2.3</feature>
        <feature>localConnector-1.0</feature>
    	<feature>servlet-3.1</feature>
		<feature>jca-1.7</feature>
		<feature>jndi-1.0</feature>
		<feature>ejb-3.2</feature>
	</featureManager>

    <!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" -->
    <httpEndpoint httpPort="9080" httpsPort="9443" id="defaultHttpEndpoint"/>

    <!-- Automatically expand WAR files and EAR files -->
    <applicationManager autoExpand="true"/>

    <resourceAdapter id="eciResourceAdapter" location="${shared.resource.dir}/cicseci.rar" autoStart="true" >
    </resourceAdapter>

    <connectionFactory id="cicseci" jndiName="ECI" >
    	<properties.eciResourceAdapter connectionUrl="tcp://aha00527" portNumber="12006" serverName="CT54D4A1"/>
    </connectionFactory>

	<enterpriseApplication location="${shared.app.dir}/ECIIVT.ear">
		<classloader classProviderRef="eciResourceAdapter"></classloader>
	</enterpriseApplication>

</server>

開発環境用Liberty(Windows)でIVTプログラムの実行

※CTG/CICSは稼働済みの前提

Libertyサーバーを起動
image.png

コンソール確認

Java HotSpot(TM) 64-Bit Server VM バージョン 1.8.0_202-b08 (ja_JP) で、defaultServer (WebSphere Application Server 19.0.0.9/wlp-1.0.32.cl190920190905-0148) を起動しています
[AUDIT   ] CWWKE0001I: サーバー defaultServer が起動されました。
[AUDIT   ] CWWKZ0058I: アプリケーションの dropins をモニター中です。
[AUDIT   ] CWWKI0001I: CORBA ネーム・サーバーが corbaloc:iiop:localhost:2809/NameService で使用可能になりました。
[AUDIT   ] J2CA7001I: リソース・アダプター eciResourceAdapter が 2.174 秒でインストールされました。
[AUDIT   ] CWWKT0016I: Web アプリケーションが使用可能です (default_host): http://localhost:9080/ECIIVTWeb/
[AUDIT   ] CWWKZ0001I: アプリケーション ECIIVT が 1.216 秒で開始しました。
[AUDIT   ] CWWKF0012I: サーバーは次のフィーチャーをインストールしました。[ejb-3.2, ejbHome-3.2, ejbLite-3.2, ejbPersistentTimer-3.2, ejbRemote-3.2, jdbc-4.1, mdb-3.2]。
[AUDIT   ] CWWKF0011I: defaultServer サーバーは、Smarter Planet に対応する準備ができました。defaultServer サーバーは 9.340 秒で始動しました。

ブラウザからhttp://localhost:9080/ECIIVTWeb/にアクセス
image.png

RUN IVTをクリック
image.png
1)~7)のメッセージが成功になっていればOK。
文字化けしているのは、ホスト側でDFHCNVを設定していないためなので、特に問題無し。

#実行環境セットアップ(Linux)
全体像
image.png

参考: 分散オペレーティング・システムでの Liberty のインストールとアンインストール
Installation Managerを使用したインストールを行う。

Installation Managerのインストール

Installation Managerは1.9.0以上のものが必要なので、以下から入手する。
https://www.ibm.com/support/fixcentral/swg/selectFixes?parent=ibm~Rational&product=ibm/Rational/IBM+Installation+Manager&function=all

image.png

image.png

image.png

image.png

Instllation Managerを使用したLibertyのインストール

Installation Managerの設定から、SDKとWAS Libertyのリポジトリファイルを追加
image.png

インストールのメニューを選択して、インストールするパッケージを選択
image.png

ライセンス確認
image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

##Libertyサーバー作成

参考: 手動による Liberty サーバーの作成

[root@test11 /opt/IBM/WebSphere/Liberty/bin]# ./server create server1

サーバー server1 が作成されました。

稼働確認

[root@test11 /opt/IBM/WebSphere/Liberty/bin]# ./server start server1

サーバー server1 を始動中です。
サーバー server1 がプロセス ID 27847 で始動しました。

ログ確認

/opt/IBM/WebSphere/Liberty/usr/servers/server1/logs/message.log
process = 27847@10.0.2.15
********************************************************************************
[20/04/04 18:44:10:924 JST] 00000001 com.ibm.ws.kernel.launch.internal.FrameworkManager           A CWWKE0001I: サーバー server1 が起動されました。
[20/04/04 18:44:16:170 JST] 00000001 com.ibm.ws.kernel.launch.internal.FrameworkManager           I CWWKE0002I: カーネルは 6.036 秒 秒後に始動されました。
[20/04/04 18:44:16:582 JST] 0000002c com.ibm.ws.kernel.feature.internal.FeatureManager            I CWWKF0007I: フィーチャー更新が開始しました。
[20/04/04 18:44:19:976 JST] 00000023 com.ibm.ws.app.manager.internal.monitor.DropinMonitor        A CWWKZ0058I: アプリケーションの dropins をモニター中です。
[20/04/04 18:44:20:567 JST] 0000002e com.ibm.ws.tcpchannel.internal.TCPChannel                    I CWWKO0219I: TCP チャネル defaultHttpEndpoint が開始され、現在、ホスト localhost  (IPv4: 127.0.0.1)、ポート 9080 の要求を listen しています。
[20/04/04 18:44:20:952 JST] 0000002c com.ibm.ws.kernel.feature.internal.FeatureManager            A CWWKF0012I: サーバーは次のフィーチャーをインストールしました。[el-3.0, jsp-2.3, servlet-3.1]。
[20/04/04 18:44:20:954 JST] 0000002c com.ibm.ws.kernel.feature.internal.FeatureManager            I CWWKF0008I: フィーチャー更新が 4.786 秒で完了しました。
[20/04/04 18:44:20:955 JST] 0000002c com.ibm.ws.kernel.feature.internal.FeatureManager            A CWWKF0011I: server1 サーバーは、Smarter Planet に対応する準備ができました。server1 サーバーは 10.823 秒で始動しました。

実行環境のLiberty(Linux)へのIVTセットアップ

cicseci.rar、ECIIVT.rarをそれぞれ以下のディレクトリに配置する。
/opt/IBM/WebSphere/Liberty/usr/shared/resources/cicseci.rar
/opt/IBM/WebSphere/Liberty/usr/shared/apps/ECIIVT.ear

server.xmlを編集

server.xml
<?xml version="1.0" encoding="UTF-8"?>
<server description="new server">

    <!-- Enable features -->
    <featureManager>
        <feature>jsp-2.3</feature>
        <feature>localConnector-1.0</feature>
        <feature>servlet-3.1</feature>
        <feature>jca-1.7</feature>
        <feature>jndi-1.0</feature>
        <feature>ejb-3.2</feature>
    </featureManager>

    <!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" -->
    <httpEndpoint id="defaultHttpEndpoint"
                  httpPort="9080"
                  httpsPort="9443" />

    <!-- Automatically expand WAR files and EAR files -->
    <applicationManager autoExpand="true"/>

    <resourceAdapter id="eciResourceAdapter" location="${shared.resource.dir}/cicseci.rar" autoStart="true" >
    </resourceAdapter>

    <connectionFactory id="cicseci" jndiName="ECI" >
        <properties.eciResourceAdapter connectionUrl="tcp://localhost" portNumber="2006" serverName="CT54D4A1"/>
    </connectionFactory>

    <enterpriseApplication location="${shared.app.dir}/ECIIVT.ear">
        <classloader classProviderRef="eciResourceAdapter"></classloader>
    </enterpriseApplication>

</server>

基本、開発環境と同じ。
ただ、ここで使用している環境は、接続先CTGの宛先の見え方が開発環境とは違うため、connectionURL,portNumberの指定は変更しています。

#実行環境用Liberty(Linux)でIVTプログラムの実行

Libertyサーバーを起動後、ブラウザからhttp://localhost:9080/ECIIVTWeb/にアクセス
image.png

Run IVTをクリック
image.png

1)~7)のメッセージが成功になっていればOK。
文字化けしているのは、ホスト側でDFHCNVを設定していないためなので、特に問題無し。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?