CLUSTERPRO 作業報告書

Similar documents
CLUSTERPRO for Linux PostgreSQL HowTo

CLUSTERPRO for Linux MySQL HowTo

NFS On CLUSTERPRO for Linux

Samba on CLUSTERPRO for Linux HOWTO

CLUSTERPRO/システム構築ガイド

Hi-Available Mail on CLUSTERPRO for Linux HOWTO

1 検証概要 目的及びテスト方法 1.1 検証概要 Micro Focus Visual COBOL 2.1 J の Enterprise Server が提供する JavaEE Connector 機能は JCA 仕様準拠のコンテナとして多くの JavaEE 準拠アプリケーションサーバーについて動

1. 検証概要 目的及びテスト方法 1.1 検証概要 Micro Focus Server Express 5.0J の Enterprise Server が提供する J2EE Connector 機能は 多くの J2EE 準拠アプリケーションサーバーについて動作検証がなされています 本報告書は

DHCPサーバのクラスタ化

CLUSTERPRO 作業報告書

1 検証概要 目的及びテスト方法 1.1 検証概要 Micro Focus Server Express 5.1 J の Enterprise Server が提供する J2EE Connector 機能は 多くの J2EE 準拠アプリケーションサーバーについて動作検証がなされています 本報告書は

CLUSTERPRO 作業報告書

1 検証概要 目的及びテスト方法 1.1 検証概要 Micro Focus Server Express 5.1 J の Enterprise Server が提供する J2EE Connector 機能は 多くの J2EE 準拠アプリケーションサーバーについて動作検証がなされています 本報告書は

Microsoft Word - nvsi_090200jp_r1_nvbsvr_mscs.doc

h70_pp_utl_2_2.doc

Sybase on CLUSTERPRO for Linux HowTo

CLUSTERPRO MC ProcessSaver 2.1 for Windows 構築ガイド 2016(Mar) NEC Corporation はじめに 責任範囲 適用範囲 概要 事前準備 クラスタ設定

CLUSTERPRO MC ProcessSaver 1.0 for Windows 構築ガイド 2012(Sep) NEC Corporation はじめに責任範囲適用範囲概要事前準備クラスタ設定

GUIプログラムⅣ

クラスタ環境でのデータベースのアップグレード

Java言語 第1回

CLUSTERPRO MC RootDiskMonitor 1.1 for Linux リリースメモ 2013(Sep) NEC Corporation ライセンス パッケージのインストール セットアップ マニュアル

IE6 2 BMI chapter1 Java 6 chapter2 Java 7 chapter3 for if 8 chapter4 : BMI 9 chapter5 Java GUI 10 chapter6 11 chapter7 BMI 12 chap

Micro Focus Enterprise Developer チュートリアル メインフレーム COBOL 開発 : MQ メッセージ連携 1. 目的 本チュートリアルでは CICS から入力したメッセージを MQ へ連携する方法の習得を目的としています 2. 前提 使用した OS : Red H

CLUSTERPRO MC ProcessSaver 1.2 for Windows 導入ガイド 第 4 版 2014 年 3 月 日本電気株式会社

Object MenuComponent MenuBar MenuItem Menu CheckboxMenuItem

クラスタ構築手順書

CLUSTERPRO MC RootDiskMonitor 1.0 for Windows FAQ 集 2013(Mar) NEC Corporation 導入に関する質問 運用に関する質問 動作環境に関する質問

CLUSTERPRO MC StorageSaver 1.1 for Linux リリースメモ 2015(Jun) NEC Corporation ライセンス パッケージのインストール セットアップ マニュアル 補足事項 注意事項

CLUSTERPRO SSS 動作環境編

クラスタ環境でのデータベースのアップグレード手順

目次 1 VirtualBoot for Hyper-V とは バックアップを実行するマシンの設定 確認すべきこと SPX によるバックアップ VirtualBoot for Hyper-V を実行するマシンの設定 確

<MW-400k > InterSec/MW400k アップデート適用手順書 2017 年 8 月 1 版

DB2 UDB For LinuxのCLUSTERPRO上での稼動確認

Maple 18 ネットワーク版インストール手順

GUIプログラムⅤ

Microsoft Word - qtsi_120246jp_rhev.doc

Windows Server 2003 Service Pack 適用手順書

GUIプログラムⅡ

55 7 Java C Java TCP/IP TCP/IP TCP TCP_RO.java import java.net.*; import java.io.*; public class TCP_RO { public static void main(string[] a

CLUSTERPRO MC RootDiskMonitor 2.3 for Linux HW-RAID 監視機能 リリースメモ 2018(Jun) NEC Corporation ライセンス パッケージのインストール セットアップ マニュアル

4. 環境変数の設定実行にあたり 次のように環境変数を設定する必要があります 1)SJIS ロケールの指定コマンド例 )export LANG=ja_JP.sjis 2)MQ 環境の指定コマンド例 ). /opt/mqm/bin/setmqenv s 3)COBOL 実行環境の指定コマンド例 ).

CLUSTERPRO MC StorageSaver 2.2 for Linux リリースメモ 2017(Apr) NEC Corporation ライセンス パッケージのインストール セットアップ マニュアル 補足事項 注意事項

はしがき 本書は CLUSTERPRO MC ProcessSaver 1.0 for Linux ( 以後 ProcessSaver と記載します ) と CLUSTERPRO X 3.1 for Linux ( 以後 CLUSTERPRO と記載します ) を組み合わせて フェイルオーバクラスタ

CLUSTERPRO MC ProcessSaver 2.3 for Windows 導入ガイド 第 5 版 2018 年 6 月 日本電気株式会社

Windows Server 2003 Service Pack 適用手順書

目次 1. はじめに x-servlet の SNMP エージェント設定... 3 ACL ファイルの作成... 3 start.bat の編集 サーバ ID によるサーバ再接続設定... 5 irule の作成... 5 Persistence Profile の作

(Microsoft Word - Compiere3.0Windows\203C\203\223\203X\203g\201[\203\213\203K\203C\203h.doc)

Microsoft Word - nvsi_060132jp_datadomain_restoreDRAFT4.doc

CLUSTERPROXSingleServerSafe SingleServerSafe ご紹介 2007 年 10 月

WebSAM LogCollector (リリース3.3)クラスタ構築ガイド

改版履歴 版数改版内容 新規作成 Page 1

CLUSTERPRO/システム構築ガイド

CLUSTERPRO X IIJ GIO インフラストラクチャー P2 動作検証報告 2017 年 11 月日本電気株式会社クラウドプラットフォーム事業部 CLUSTERPROグループ 1 NEC Corporation 2017

Java言語 第1回

CLUSTERPRO MC ProcessSaver 2.3 for Windows はじめての ProcessSaver 第 5 版 2018 年 6 月 日本電気株式会社 日頃より弊社製品をご愛顧いただきありがとうございます このたび お客様にご利用いただく ProcessSaver でのプロセ

CLUSTERPRO MC RootDiskMonitor 1.0 for Windows インストールガイド 2013(Mar) NEC Corporation はじめに 製品導入の事前準備 本製品のインストール 本製品の初期設定 本製品のアンインストール

Microsoft Word - h70_pp_inet_5_1.doc

Microsoft Word - nvsi_050090jp_oracle10g_vlm.doc

Maple 18 スタンドアロン版インストール手順

改版履歴 版数 改版 内容 新規作成 Microsoft.NET Framework のダウンロード先 URL を追記 バージョンアップに伴い改版 i

Samba_HowTo.doc

CLUSTERPRO X for Linux PPガイド (SQL Server)

改版履歴 Ver. 日付履歴 1.0 版 2014/5/30 目次 0 はじめに 本文中の記号について Live Migration を設定するための準備 Live Migration の設定 Live Migration の運

改版履歴 版数 改版日付 改版内容 /03/14 新規作成 2013/03まで製品サイトで公開していた WebSAM DeploymentManager Ver6.1 SQL Server 2012 製品版のデータベース構築手順書 ( 第 1 版 ) を本 書に統合しました 2

WebSAM LogCollector (リリース3.3) HP-UX用マネージャ クラスタ構築ガイド

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

WebSAM Storage ReplicationNavigator WebSAM Storage ReplicationNavigator Oracle RAC Option 本製品を販売する場合 事前に下記問い合わせ先へご連絡をお願いします < 問い合わせ先 > 8. 問い合わせ窓口 を参照し

Windows Server 2003 Service Pack 適用手順書

CLUSTERPRO MC StorageSaver 2.0 for Windows 導入ガイド 第 1 版 2015 年 3 月 日本電気株式会社

CLUSTERPRO MC ProcessSaver 2.2 for Linux 構築ガイド 2017(Oct) NEC Corporation 責任範囲 適用範囲 概要 事前準備 クラスター設定 動作確認

目次 目次... 2 はじめに SQL Server 2005 製品版へのアップグレード SQL Server 2005 製品版へのデータベース (DPM インスタンス ) の構築 / 設定 データベース (DPM インスタンス ) の構築

目次 2 1 PC Control Utility PD 1 について 動作環境

プレインストールOSリカバリ手順書

CLUSTERPRO for Linux システム構築ガイド

改版履歴 版数改版内容 新規作成 i

LifeKeeperサポートへの問い合わせ

セットアップカード

シェルスクリプトマガジン vol.30


WebReportCafe

CLUSTERPRO MC RootDiskMonitor 2.3 for Windows リリースメモ 2018(Jun) NEC Corporation はじめに ライセンス 動作要件 セットアップ マニュアル

目 次 Java GUI 3 1 概要 クラス構成 ソースコード例 課題...7 i

vol.30.}...`.X...b.h

CLUSTERPRO MC ProcessSaver 2.1 for Linux リリースメモ 2016(Mar) NEC Corporation ライセンス パッケージのインスト ル セットアップ マニュアル 障害発生時の手順 補足事項 注意事項

目次 1. HLA Fusion 3.0 がインストール可能な環境 HLA Fusion 3.0 のインストール HLA Fusion 3.4 のインストール 初期設定用データベース接続 ( 初めての方のみ ) 既存データベースのUpg

PostgreSQL Plus 管理者ガイド

2. インストールの方法 インストールの手順は まずインストーラーをサイトからダウンロードし イールドブック カリキュレーターと Java Web Start をインストールします 次にイールドブック カリキュレーターを起動してサーバー接続し Java のファイルをダウンロードします 以下の手順に従

Java言語 第1回

12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある インターネットアドレス

intra-mart ワークフローデザイナ

PowerPoint プレゼンテーション

GHS混合物分類判定システムインストールマニュアル

機能紹介 : Java ゲートウェイとインターシステムズ製品

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

Microsoft Word - XOOPS インストールマニュアルv12.doc

CLUSTERPRO MC RootDiskMonitor 2.3 for Linux リリースメモ 2018(Jun) NEC Corporation ライセンス パッケージのインストール セットアップ マニュアル

PowerPoint Presentation

CAC

Transcription:

Micro Focus Server Express + CLUSTERPRO - 検証報告書 - 2003 年 12 月 16 日版 ターボリナックス株式会社

目次 目次 1. 概要...3 2. 対象システム...4 2.1. ハードウェア構成...4 3. CLUSTERPRO の構築...5 3.1. OS のインストール...5 3.2. Turbolinux 8 CLUSTERPRO SE...6 3.2.1. CLUSTERPRO インストール準備...6 3.2.2. CLUSTERPRO のインストール...6 3.2.3. クラスタの設定... 6 4. アプリケーションの設定...8 4.1. Server Express のインストール...8 4.2. Server Express のクラスタ設定...8 4.3. CLUSTERPRO の設定 ( アプリケーションの起動 / 停止 )...10 5. クラスタ構成の検証...13 5.1. 検証項目...13 5.2. 検証内容...13 6. 付録...14 6.1. 検証用プログラムコード...14

1. 概要 1. 概要 この文書は Server Express 2.2 J の動作環境を Turbolinux 8 CLUSTERPRO SE によるクラスタ上に作成し クラスタの動作検証を行った際の手順を記載するものである 郵便番号 : 住所 : 御担当者名 : 連絡先 : 作業日 : 作業場所 会社名 : マイクロフォーカス株式会社 ターボリナックス株式会社 作業者 この文章は Server Express を CLUSTERPRO によりクラスタ化するための設定例を示すことにより システムインテグレーション時の留意事項をまとめたものであり Server Express や CLUSTERPRO の動作保証をするものではありません Page 3

2. 対象システム 2. 対象システム 2.1. ハードウェア構成 対象システムのハードウェア構成 メーカー名 項目 DELL 製品名 PowerEdge 1300 プロセッサ 内容 メモリ CPU チップセット Pentium III 256MB クラスタの構成図 Page 4

3. CLUSTERPRO の構築 3. CLUSTERPRO の構築 クラスタの構築手順を記載する 3.1. OS のインストール 各サーバに次の OS 製品をインストール 製品名 Turbolinux Enterprise Server 8 powered by UnitedLinux ( SP2a 適用 Kernel 2.4.19-304 ) なお インストール時に インストールステップで表示される インストールの設定 画面で ソフトウェア を選択して 詳細な選択 (D) をクリックし [C/C++ Compiler コンパイラーとツール ] を選択してインストール Turbolinux Enterprise Server 8 のインストールに関する詳細は 以下の URL 内インストール手順書を参照 URL : http://www.turbolinux.co.jp/products/cluster/cpro8/trial.html 評価版ご利用時のご参考資料 Turbolinux Enterprise Server 8 簡易インストール手順書 ネットワークの設定 クラスタサーバ 1 項目 インターフェース - eth0 パブリック LAN IP アドレス 192.168.3.230 ネットワーク 192.168.3.0 / 255.255.255.0 インターフェース - eth1 ホスト名 IP アドレス 10.1.1.1 インターコネクト ネットワーク 10.1.1.0 / 255.255.255.0 qa-230 内容 クラスタサーバ 2 項目 インターフェース - eth0 パブリック LAN IP アドレス 192.168.3.231 ネットワーク 192.168.3.0 / 255.255.255.0 インターフェース - eth1 ホスト名 IP アドレス 10.1.1.2 インターコネクト ネットワーク 10.1.1.0 / 255.255.255.0 qa-231 内容 OS インストール後に Service Pack 2 をインストール # mount /media/cdrom # cd /media/cdrom #./install_update_rpms.sh Page 5

3. CLUSTERPRO の構築 3.2. Turbolinux 8 CLUSTERPRO SE 各サーバに次の CLUSTERPRO をインストール 製品名 Turbolinux 8 CLUSTERPRO SE 3.2.1. CLUSTERPRO インストール準備 共有ディスクにクラスタ用のパーティションを作成する ここでは共有ディスクへの接続設定は完了しているものとする 片方のマシンから fdisk コマンドを実行し CLUSTER パーティションおよび WAS 用 DB2 用パーティションを作成する # fdisk /dev/sdb CLUSTER パーティション /dev/sdc1 10MB Server Express 用切替パーティション /dev/sdc8 11GB 3.2.2. CLUSTERPRO のインストール 各サーバに CLUSTERPRO のパッケージ clusterpro-2.1-1.3 をインストール # mount /media/cdrom # cd /media/cdrom/linux/server/se/2.1 # rpm -ivh clusterpro-2.1-1.3.i386.rpm 各サーバに SP2a 用 CLUSTERPRO SE アップデートモジュールを適用する 以下の URL よりアップデートモジュールをダウンロード ダウンロード先 http://www.turbolinux.co.jp/update/ 3.2.3. クラスタの設定 クラスタの設定内容は以下の通り スーパークラスタ名 項目 ネットワークパーティション ディスク COM ポート - サブクラスタ サブクラスタ名 サーバ グループ SuperCluster ###NEC_NP1 SubCluster qa-230, qa-231 MFSE 内容 Page 6

3. CLUSTERPRO の構築 フェイルオーバグループの設定 Server Express 用フェイルオーバグループの設定内容は以下の通り フェイルオーバグループ名 フェイルオーバ ポリシー リソース 項目 MFSE qa-230 qa-231 内容 仮想 IP アドレス 192.168.3.232/255.255.255.0 切替パーティション名切替パーティションマウントポイント名切替パーティションサイズファイルシステムマウントオプション /dev/sdc8 /mnt/raid1 11GB ext3 rw トレッキングツールでクラスタ情報を生成し クラスタを構築する CLUSTERPRO 用 fstab は以下の通り /etc/clusterpro/fstab NP ###NEC_NP1 /dev/sdc1 SW sdc8 /dev/sdc8 /mnt/raid1 ext3 rw WD ###NEC_NP1 /dev/sdc1 WD sdc8 /dev/sdc8 :fsckopt -y :mnttimeout 300 Turbolinux 8 CLUSTERPRO SE のインストール / 設定 ( スクリプトを除く ) に関する詳細は 以下の URL 内簡易設定手順書を参照 URL : http://www.turbolinux.co.jp/products/cluster/cpro8/trial.html 評価版ご利用時のご参考資料 Turbolinux 8 CLUSTERPRO SE トライアル版簡易設定手順書 Page 7

4. アプリケーションの設定 4. アプリケーションの設定 各サーバに Server Express をインストールし クラスタの設定を行う 4.1. Server Express のインストール 各サーバに次の Server Express をインストール 製品名 Micro Focus Server Express 2.2 J 各サーバに Server Express をインストールする Server Express 本体はデフォルトのインストール先 /opt/lib/cobol を使用 ライセンスデータベースはデフォルトのインストール先 /opt/lib/mflmf を使用 /opt は各サーバのローカルディスクに持つ注 )Server Express のライセンスデータベースは共有ディスクに持つことができません ライセンスデータベースを共有ディスクに置くと 待機系への切り替えでディスクが再マウントされるときに ライセンスのコピープロテクションメカニズムが検知して データベースの破損とみなされます ライセンスを各サーバにインストールする Micro Focus COP Framework を /mnt/raid1( 共有ディスク ) にインストールする 以下の URL よりダウンロード ダウンロード先 http://www.microfocus.co.jp/support/xpacks/cop_framework.html /mnt/raid1( 共有ディスク ) 上の COP Framework の配下に COBOL アプリケーションプログラムと アプリケーションデータファイルを配備する 6.1 検証用プログラムコード の サーバ側 COBOL プログラム 参照 Windows クライアントの準備 COBOL を呼び出す Java GUI クライアントとして使用 Java GUI から値を入力し サーバ側 COBOL アプリケーションが正しく値を受け取っていることを確認する 6.1 検証用プログラムコード の Windows クライアント側 Java プログラム 参照 4.2. Server Express のクラスタ設定 クラスタで使用する COBOL Server 用スクリプトを 以下のディレクトリにコピーする クラスタの Server Express 用グループがアクティブなサーバからコピーを実行する スクリプトディレクトリパス COBOL Server 用スクリプト /mnt/raid1/mfdata StartUp.sh Page 8

4. アプリケーションの設定 スクリプト本検証で使用した COBOL Server 用スクリプトは以下の通り デフォルトのスタートアップスクリプトを編集して使用 "&" を付加してバックグラウンド処理にする ">> COBOLSrv.log" を付加してコンソール出力をログファイルに出力 StartUp.sh #!/bin/sh COBDIR=/opt/lib/cobol export COBDIR JH=/usr/java/jre1.3.1_08 export JH LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$COBDIR/lib:$JH/lib/i386:$JH/lib/i386/client export LD_LIBRARY_PATH PATH=$PATH:$COBDIR/cobbin:$JH/bin export PATH TERM=vt100 export TERM export CLASSPATH=COPClient.jar:$JH/lib/rt.jar:$CLASSPATH echo COBOL Server Starting `date` >> COBOLSrv.log cobjrun -jar COPServer.jar $* >> COBOLSrv.log 2>> COBOLSrv.log & Page 9

4. アプリケーションの設定 4.3. CLUSTERPRO の設定 ( アプリケーションの起動 / 停止 ) 起動 / 停止用スクリプトを CLUSTERPRO マネージャから編集する 本検証では斜体文字部分を追記 COBOL Server の起動および停止のスクリプトを定義 start.bat #! /bin/sh #*************************************** #* START.BAT * #*************************************** if [ "$ARMS_EVENT" = "START" ] if [ "$ARMS_DISK" = "SUCCESS" ] armlog "NORMAL1" MOUNTPOINT=`armlsmnt -l $ARMS_RESOURCELIST` cd $MOUNTPOINT/mfdata;./StartUp.sh if [ "$ARMS_SERVER" = "HOME" ] armlog "NORMAL2" armlog "ON_OTHER1" armlog "ERROR_DISK from START" elif [ "$ARMS_EVENT" = "RECOVER" ] armlog "RECOVER" elif [ "$ARMS_EVENT" = "FAILOVER" ] if [ "$ARMS_DISK" = "SUCCESS" ] armlog "FAILOVER1" MOUNTPOINT=`armlsmnt -l $ARMS_RESOURCELIST` cd $MOUNTPOINT/mfdata;./StartUp.sh if [ "$ARMS_SERVER" = "HOME" ] armlog "FAILOVER2" armlog "ON_OTHER2" armlog "ERROR_DISK from FAILOVER" armlog "NO_ARM" armlog "EXIT" exit 0 Page 10

4. アプリケーションの設定 stop.bat #! /bin/sh #*************************************** #* STOP.BAT * #*************************************** arm_rel_path() while [ "$1"!= "" ] do armrelpath $1 > /dev/null 2>&1 relret=$? if [ "$relret" = "0" ] armlog "KILL NO PROCESS" elif [ "$relret" = "1" ] armlog "KILL SOME PROCESS" armlog "ARMRELPATH ERROR" done shift arm_rel_mntpoint() mntpoint=`armlsmnt -l $ARMS_RESOURCELIST` mntret=$? if [ "$mntret" = "0" ] if [ "$mntpoint"!= "" ] arm_rel_path $mntpoint armlog "NO MOUNT POINT" armlog "ARMLSMNT ERROR" if [ "$ARMS_EVENT" = "START" ] if [ "$ARMS_DISK" = "SUCCESS" ] armlog "NORMAL1" killall -9 cobjrun if [ "$ARMS_SERVER" = "HOME" ] armlog "NORMAL2" armlog "ON_OTHER1" arm_rel_mntpoint armlog "ERROR_DISK from START" elif [ "$ARMS_EVENT" = "FAILOVER" ] if [ "$ARMS_DISK" = "SUCCESS" ] armlog "FAILOVER1" killall -9 cobjrun if [ "$ARMS_SERVER" = "HOME" ] Page 11

4. アプリケーションの設定 armlog "FAILOVER2" armlog "ON_OTHER2" arm_rel_mntpoint armlog "ERROR_DISK from FAILOVER" armlog "NO_ARM" armlog "EXIT" exit 0 stop.bat lines 53-89/89 (END) Page 12

5. クラスタ構成の検証 5. クラスタ構成の検証 Server Express のクラスタ構成での動作 およびリソースの引継ぎが正常に行われることを確認 5.1. 検証項目 クラスターサーバ上で稼働する Server Express に対して行った検証項目および 検証結果は以下の通り 内容は 5.2 検証内容 を参照 No 項目 結果 1 スタートアップスクリプトによる COBOL Server の起動 OK 2 CLUSTERPRO マネージャによるグループの移動 OK 3 Windows クライアントからの COBOL の呼び出し ( 稼働系 ) OK 4 Windows クライアントからの COBOL の呼び出し ( 待機系 ) OK 5.2. 検証内容 検証の内容は以下の通り 1. スタートアップスクリプトによる COBOL Server の起動 CLUSTERPRO のスタートアップスクリプトより COBOL Server の起動が正常に完了することを確認 2. CLUSTERPRO マネージャによるグループの移動 CLUSTERPRO マネージャからグループの移動を実行し 待機系で正常に稼働することを確認 3. Windows クライアントからの COBOL の呼び出し ( 稼働系 ) 稼働系で COBOL Server を起動し Windows 上の Java クライアントから COBOL の呼び出しができることを確認 4. Windows クライアントからの COBOL の呼び出し ( 待機系 ) Windows 上の同一の Java クライアントから 待機系の COBOL 呼び出しが正常に行えることを確認 Page 13

6. 付録 6. 付録 6.1. 検証用プログラムコード 本検証で使用したプログラムは以下の通り サーバ側 COBOL プログラム CustCob.cbl $set REENTRANT(2) FILE-CONTROL. SELECT CUST-MASTER ASSIGN TO "CUST.dat" ORGANIZATION INDEXED RECORD KEY FS-CUSTID ACCESS MODE RANDOM. DATA DIVISION. FILE SECTION. FD CUST-MASTER. 01 CUST-REC. 05 FS-CustId PIC X(4) COMP-5. 05 FS-CustName PIC X(30). 05 FS-CustCompany PIC X(30). 05 FS-CustEmail PIC X(30). LINKAGE SECTION. 01 OPCODE PIC X(4) COMP-5. 01 CustId PIC X(4) COMP-5. 01 CustName PIC X(30). 01 CustCompany PIC X(30). 01 CustEmail PIC X(30). PROCEDURE DIVISION USING OPCODE CustId CustName CustCompany CustEmail. 1. DISPLAY "IN: CustId = ", CustId. OPEN I-O CUST-MASTER. MOVE CustId TO FS-CustId. MOVE CustName TO FS-CustName. MOVE CustCompany TO FS-CustCompany. MOVE CustEmail TO FS-CustEmail. EVALUATE OPCODE WHEN 1 READ END-READ WHEN 2 WRITE END-WRITE WHEN 3 REWRITE END-REWRITE WHEN 4 DELETE END-DELETE END-EVALUATE. CLOSE CUST-MASTER INVALID CONTINUE CUST-REC INVALID CONTINUE CUST-REC INVALID CONTINUE CUST-MASTER INVALID CONTINUE CUST-MASTER. DISPLAY "OUT: CustName = ", CustName. MOVE FS-CustId TO CustId. MOVE FS-CustName TO CustName. MOVE FS-CustCompany TO CustCompany. MOVE FS-CustEmail TO CustEmail. EXIT PROGRAM. Page 14

6. 付録 Windows クライアント側 Java プログラム CustJava.java import java.awt.*; import java.awt.event.*; import com.microfocus.cobol.cop.*; import com.microfocus.cobol.cop.lang.*; import java.io.*; import java.net.*; public class CustJava extends Frame // 画面上のコントロール MenuBar ApplicationMenu = new MenuBar(); Menu menu1 = new Menu(); Menu menu2 = new Menu(); MenuItem menuitem1 = new MenuItem(); MenuItem menuitem3 = new MenuItem(); MenuItem menuitem4 = new MenuItem(); MenuItem menuitem5 = new MenuItem(); MenuItem menuitem6 = new MenuItem(); Label label1 = new Label(); Label label2 = new Label(); Label label3 = new Label(); Label label4 = new Label(); Label label5 = new Label(); Label label6 = new Label(); TextField tf3 = new TextField(); TextField tf4 = new TextField(); TextField tf5 = new TextField(); TextField tf6 = new TextField(); public static void main(string[] args) CustJava frame = new CustJava(); frame.validate(); frame.setvisible(true); public CustJava() try jbinit(); catch (Exception e) e.printstacktrace(); //Component initialization private void jbinit() throws Exception this.setsize(new Dimension(600, 200)); this.settitle(" 顧客管理デモ Java 画面 "); ApplicationMenu.setHelpMenu(menu2); menu1.setlabel(" ファイル "); menuitem1.setlabel(" 終了 "); menu2.setlabel(" 処理選択 "); label1.setfont(new Font("Dialog", 1, 16)); label1.setalignment(1); label1.settext(" 顧客マスターメンテナンス "); label2.setalignment(0); label2.settext(""); label3.setalignment(0); label3.settext(" 顧客 No."); label4.setalignment(0); label4.settext(" 顧客名 "); label5.setalignment(0); Page 15

6. 付録 label5.settext(" 会社名 "); label6.setalignment(0); label6.settext("email"); menuitem3.setlabel(" 参照 "); menuitem4.setlabel(" 追加 "); menuitem5.setlabel(" 更新 "); menuitem6.setlabel(" 削除 "); menuitem6.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(actionevent e) menuitem6_actionperformed(e); ); menuitem5.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(actionevent e) menuitem5_actionperformed(e); ); menuitem4.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(actionevent e) menuitem4_actionperformed(e); ); menuitem3.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(actionevent e) menuitem3_actionperformed(e); ); menuitem1.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(actionevent e) menuitem1_actionperformed(e); ); this.setlayout(new GridLayout(6,2)); ApplicationMenu.add(menu1); ApplicationMenu.add(menu2); this.setmenubar(applicationmenu); menu1.add(menuitem1); this.add(label1, null); this.add(label2, null); this.add(label3, null); this.add(tf3, null); this.add(label4, null); this.add(tf4, null); this.add(label5, null); this.add(tf5, null); this.add(label6, null); this.add(tf6, null); menu2.add(menuitem3); menu2.add(menuitem4); menu2.add(menuitem5); menu2.add(menuitem6); WindowListener listener = new WindowListener(); addwindowlistener(listener); class WindowListener extends WindowAdapter WindowListener() super(); Page 16

6. 付録 public void windowclosing(windowevent e) System.exit(0); private int call_cobol(int opcode) Pointer ptr; ClientRequest cop = new ClientRequest(); try cop.setmachine(inetaddress.getbyname("qa-232")); // ホスト名 "qa-232" は クラスタの仮想 IP アドレス 192.168.3.232 // にマップして hosts に定義しておく // 各ノードのホスト名を指定してはならない cop.setport(9200); // ポート番号 9200 は COBOL Server のデフォルト値 cop.connect(); catch(exception e) System.err.println("COBOL Server connection error : " + e.getmessage() + "\n"); return 1; ParameterList inparams = new ParameterList(); inparams.add(opcode).add(new Integer(tf3.getText())); inparams.add(new Pointer(tf4.getText(), 30)); inparams.add(new Pointer(tf5.getText(), 30)); inparams.add(new Pointer(tf6.getText(), 30)); ParameterList outparams = new ParameterList(); try cop.cobcall("custcob", inparams, outparams); catch(exception e) System.err.println("COBOL calling error : " + e.getmessage() + "\n"); return 2; Integer custid = (Integer) outparams.getargument(1); tf3.settext(custid.tostring()); ptr = (Pointer) outparams.getargument(2); tf4.settext(new String(ptr.getBytes())); ptr = (Pointer) outparams.getargument(3); tf5.settext(new String(ptr.getBytes())); ptr = (Pointer) outparams.getargument(4); tf6.settext(new String(ptr.getBytes())); return 0; void menuitem1_actionperformed(actionevent e) System.exit(1); void menuitem3_actionperformed(actionevent e) call_cobol(1); void menuitem4_actionperformed(actionevent e) Page 17

6. 付録 call_cobol(2); void menuitem5_actionperformed(actionevent e) call_cobol(3); void menuitem6_actionperformed(actionevent e) call_cobol(4); void this_windowclosed(windowevent e) System.exit(0); Page 18