IBM i Access for Windows や Personal Communications で 「PCSWSは動作を停止しました」か IMEのオン/オフが効かない

---
2019/05/07 PCOMMにも修正が出ました。本文を修正しました。
2019/05/14 PCOMMのFix packの適用方法を記載しました。
---

IBM i Access for Windows (iAW) や Personal Communications (PCOMM) のエミュレーター操作で「PCSWSは動作を停止しました」の発生や IMEのオン/オフが効かない現象が報告されています。
下記は IBM i Access for Windows での停止例です。

![iPCSWSは動作を停止しました](https://qiita-image-store.s3.amazonaws.com/0/184930/35bd9661-9435-f0f4-94f2-672911fd39b1.png)

---

# 対象バージョン
## IBM i Access for Windows 7.1 + SI68573
iAW 7.1 では最新のサービスパック SI68573 ( ftp://public.dhe.ibm.com/as400/products/clientaccess/win32/v7r1m0/servicepack/si68573/ ) で発生します。

## Personal Communications 13.0.2
PCOMM 13では、最新の Mod Pack (以前の MR や CSD に相当) [13.0.2](https://www-01.ibm.com/support/docview.wss?uid=ibm10738343) で発生します。

## Personal Communications 12.0.4.1
PCOMM 12 では、最新の Fix Pack [12.0.4.1](https://www-01.ibm.com/support/docview.wss?uid=ibm10739203) で発生します。
12.0.4.1 の前提になっている Mod Pack 12.0.4 では発生しません。

# 現象
上記のように「PCSWSは動作を停止しました」でクラッシュするケースやエミュレーター上で IMEのオン/オフが効かない状態になります。
必ず起きるのではなく、Windows のリブートで回復することもあるます。逆に一見正常に使えていても Windows をリブートすると発生するようになることもあります。
なおクラッシュ時の障害モジュールの名前がIME関連であることやIMEのオン/オフが効かない現象からも予測されますが、英語環境では発生しないようです。

# 解決方法
## IBM i Access for Windows 7.1 + SI68573
 SI68573 に対する追加修正モジュール (ftp://public.dhe.ibm.com/as400/products/clientaccess/win32/v7r1m0/servicepack/si68573_plus/) が用意されています。
そのうち SE70364 (ftp://public.dhe.ibm.com/as400/products/clientaccess/win32/v7r1m0/servicepack/si68573_plus/se70364/) が、今回の修正モジュールです。

## PCOMM 13.0.2 / 12.0.4.1

下記のFix packに修正が含まれます。
IBM Personal Communications 13.0.2.1
https://www-01.ibm.com/support/docview.wss?uid=ibm10882726

IBM Personal Communications 12.0.4.2
https://www-01.ibm.com/support/docview.wss?uid=ibm10882732

差分更新のFix pack なので、13.0.2 / 12.0.4.1 (12.0.4 + FP1)が前提です。

なお、12.0.4.2 は一時的に入手できなくなっています。5/15 に利用可能になる予定です。(5/14更新、利用可能日が5/9から延長されていました)
https://www-01.ibm.com/support/docview.wss?uid=ibm10883278

# どのレベルにするか/修正内容の確認
障害の起こる最新レベルにして、さらに解決用の修正を提供するというポリシーもあるでしょう。
また、障害の起こる最新レベルにはしないというポリシーもあるでしょう。
何かどのどのレベルで直っているかを、判断の目安に使うことはできるでしょう。

## IBM i Access for Windows 7.1 + SI68573
SI68573 の readmesp.txt (ftp://public.dhe.ibm.com/as400/products/clientaccess/win32/v7r1m0/servicepack/si68573/readmesp.txt) に、これまでのサービスパックでの修正履歴が記載されています。

## PCOMM 13.0.2 / 12.0.4.1
[Fix list for IBM Personal Communications](https://www-01.ibm.com/support/docview.wss?uid=swg27009828) に、これまでの修正履歴が記載されています。

# PCOMM Fix packの適用方法

(2019/05/14 追加)
Fix pack を適用するには、**unzip した Fix Pack 内の Update.bat をダブルクリックして実行してはだめ**です。
Update.bat の中身は下記しかありません。ダブルクリックしただけでは、UpdateOrRollback.exe が見つからずに、更新しないで終了します。

```
UpdateOrRollback.exe /u
```

**管理者でコマンドプロンプトを開き、Update.bat や他のファイルがあるフォルダーに「cd」で移動して、Update.bat を実行してください**。
下記のように、実行されます。

```
C:\Users\user\Desktop\PCOMM-13.0.2.1-MLS-Fixpack\18April19_MMLS_18042019>UpdateOrRollback.exe /u
backing up file C:\Program Files (x86)\IBM\Personal Communications\aparlist.txt
backing up file C:\Program Files (x86)\IBM\Personal Communications\pcscc.dll
backing up file C:\Program Files (x86)\IBM\Personal Communications\PCSFT5.EXE

(中略)

copying file C:\Program Files (x86)\IBM\Personal Communications\Readme\slv\readme.html
copying file C:\Program Files (x86)\IBM\Personal Communications\Readme\sve\readme.html
copying file C:\Program Files (x86)\IBM\Personal Communications\Readme\tur\readme.html
Updation compeleted successfully. Press any key to exit.
```
## 注意 (2019/09/11 記載)
exeやdllがすでに活動中の場合、update.exe でのコピー/置き換えに失敗することがあります。
メッセージ全体を見て、すべてのコピー/置き換えが成功していることを確認してください。
失敗する場合、タスクマネージャーの詳細で「PCS」で始まるプロセスを終了して、実行してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/184930/61d671f1-c60e-4f19-5e55-ab2d4b681d32.png)
0/898dca6d-9044-2175-46ed-2b7a1266b5c2.png)


# PCOMM Fix pack を元に戻す時の注意
PCOMM 12.0.4.1 は、事前に 12.0.4 を導入しておき、差分だけをコピーするFix Packです。以前のPCOMMがアンインストールされているわけではなく、12.0.4 にロールバックする方法が用意されています。

12.0.4.1 にするには、unzip した Fix Pack 内の Update.bat を実行しました。
12.0.4 に戻すのに、同じ場所にある Rollback.bat を実行したいのが人情ですが、これではロールバックできません。

## ロールバックには PCOMM 導入先の Rollback.bat を実行
Update.bat は PCOMM 導入先(c:\Program Files (x86)\IBM\Personal Communications)に「backup_12.0.4.0_1」のように、backup で始まるフォルダーを作り、置き換え前のファイルをバックアップします。
一緒に Rollback.bat もコピーします。

**12.0.4 にロールバックするには、こちらのPCOMM 導入先の backup で始まるフォルダー内の  Rollback.bat を実行します。UNZIPしたFixpack 内の Rollback.bat を実行しても意味はありません。**