All About ACS: IBM i Access Client Solutions を特別な導入をしないで利用する

# ACS Base Package の 前提条件は、Java 6.0 以上だけ
ACS Base Package の 稼働の前提条件は Java 6.0 以上が動いているということだけです。
Java 6.0 以上が動く環境であれば、Linux、Mac、Windowsだけではなく IBM i 上でも AIX 上でも稼働します。

Linux、Mac、Windows 環境には専用のインストールスクリプトが用意されていますが、そんなものを利用しなくても、ACS は利用可能です。

# まず zip を展開
ACS は zip 形式でダウンロードされます。
[専用ページからのダウンロード](http://qiita.com/6onoda/items/a66c3af5f4ac065fe768)したところ「IBMiAccess_v1r1.zip」としてダウンロードされましたので、これを展開します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/184930/71ca46f5-098a-d923-45d7-7fbdd9638ffb.png)

# 本体は「acsbundle.jar」だけ
実行プログラムの本体は、実は「acsbundle.jar」という一つのファイルだけです。
通常 Java が導入されている環境であれば、jar が Java の実行に関連付けされています。
「acsbundle.jar」をダブルクリックするだけで、ACS が起動するはずです。

利用の初回は「ご使用条件」の確認が求められます。しかし、このままでは「はい」が押せません。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/184930/0151c1c4-bbb9-6d90-eee2-e3a527325676.png)

一番下までスクロール(つまり、全ての条項を確認)して「はい」を押します。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/184930/d00c6b38-4d6c-cfd5-2009-5f3dc1c4830d.png)

これで ACS が起動してくるはずです。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/184930/e449cc61-0583-e7c1-9f55-4b89a6bd306c.png)


# コマンドラインからの実行と最大ヒープ・サイズの指定
コマンドラインから jar を起動するには「-jar」を指定します。

```
<java_path>java -jar <path>/acsbundle.jar
```

この方法は複数の Java/ACS を切り替えて問題がどこにあるのかを確認するのに良い方法です。


展開した中の Documentation/GettingStarted_ja.html には、下記の記載があります。

> ほとんどのプラットフォームで、Java 仮想マシンのヒープ・スペースにデフォルト で設定される最大サイズは、IBM i Access Client Solutions 製品内で複数の機能を 利用するには小さすぎます。1 ギガバイトの最大ヒープ・サイズ (-Xmx1024m) が、 推奨される最小サイズです。1 ギガバイトより小さいサイズを指定するか、デフォルト のヒープ・サイズを使用すると、OutOfMemoryException が発生する可能性があります

この注記を守るのであれば、下記のように「-Xmx1024m」をさらに指定します。

```
<java_path>java -Xmx1024m -jar <path>/acsbundle.jar
```

# AcsConfig.properties で ACS の動きをコントロール
上位の zip の展開イメージを見ると「AcsConfig.properties」というファイルがあるのがわかります。
これはテキストファイルで、ACS の動きをコントロールするファイルです。
ACS の構成ロケーション(ユーザーの各種設定やファイルの置き場所) や ACS から利用できる機能を制限などを記述します。

利用できる機能の制限方法は Documentation/GettingStarted_ja.html のこの部分に記載されています。

>9.5 カスタマイズされたパッケージ
>IBM i Access Client Solutions では、システム管理者が AcsConfig.properties ファイルに 次のプロパティーを設定して特定の機能の使用を制限できるようになっています。
>   com.ibm.iaccess.ExcludeComps=\<function, function,...>
>   :

プラットフォーム専用のインストールスクリプトで導入した場合、指定した機能制限は、自動的に、AcsConfig.properties に書かれますが、インストールスクリプトを利用しない場合は、自分で記述する必要があります。

# 変更した AcsConfig.properties を acsbundle.jar に隠す
実は、acsbundle.jar の中にも AcsConfig.properties が存在します。外部に AcsConfig.properties が見つからない場合に利用されます。
acsbundle.jar の中の AcsConfig.properties は機能制限がかかっていません。そのため、acsbundle.jar だけを配布すると、ユーザーは全ての機能が使えます。

これが、望ましくない場合、カスタマイズした AcsConfig.properties を acsbundle.jar に埋め込み、制限した状態の acsbundle.jar のみを配布します。

Documentation/GettingStarted_ja.html に、下記の記述があります。

> システム管理者は、必要であれば、AcsConfig.properties ファイルを更新して、特定の機能への アクセスを制限することができます。アクセスを制限すると、その機能がメイン GUI から除去され、 コマンド行から使用できなくなります。
機能を制限する方法の 1 例は、AcsConfig.properties ファイルに次の行を追加することです。 
>    com.ibm.iaccess.ExcludeComps=OPCONSOLE,HWCONSOLE,L1CPLUGIN
>システム管理者が、acsbundle.jar 内の AcsConfig.properties ファイルを、ユーザーに デプロイする前に更新したい場合、それを行う方法の例は以下のとおりです。
>    jar uvf acsbundle.jar AcsConfig.properties
>使用される AcsConfig.properties ファイルを IBM i Access Client Solutions がどのように 決定するかについて詳しくは、セクション 9.3「構成ロケーションの変更」を参照してください。 

まず、AcsConfig.properties をカスタマイズし、期待の動きになるかテストします。
次に、下記の方法で、acsbundle.jar の中の AcsConfig.properties を上書きます。

```
jar uvf acsbundle.jar AcsConfig.properties
```

更新された acsbundle.jar だけユーザーに配布します。

***
「All About ACS」では IBM i に対する新しいクライアント「IBM i Access Client Solutions」の情報をいろいろ提供していきます。
[記事一覧はこちら](http://qiita.com/6onoda/items/2dc925586d8d3b8644f2)で確認いたけます。

許可の無い転載を禁じます。
この記事は筆者の個人的な責任で無保証で提供しています。
当記事に関してIBMやビジネスパートナーに問い合わせることは、固くお断りします。
***