この記事では、 UnsupportedOperationExceptionにつながる監査メッセージの最大キューサイズを増やす方法についての手順を説明します。
デフォルトでは、 システム設定 > ファンデーション > 監査 > "監査メッセージの最大キューサイズ" は200に設定されています。 0より大きい値であることが前提です。 この特定のメッセージキューの構成は、監査イベントを管理するためのものです。 無効な値(例えば、 0)が設定された場合、ポータル管理者は結果としてユーザーグループを作成することができなくなります。 Portlet is temporarily unavailable と UnsupportedOperationException がそれぞれフロントエンドとバックエンドで観測されます。
再現までの手順
- Control Panel > Configuration > System Settings > Foundation > Auditに行きます。
- Editをクリックします。
- Auditメッセージの最大キューサイズを0に設定する
- ユーザー > ユーザーグループに移動します。
- ユーザーグループを作成し、 保存をクリックします。
観察された行動
以下のエラーメッセージ(snippet)が表示され、ユーザーグループを正常に作成することができません:
11:11:52,529 ERROR [ajp-nio-8009-exec-21][PortletServlet:111] javax.portlet.PortletException: com.liferay.portal.kernel.exception.ModelListenerException: java.lang.UnsupportedOperationException
javax.portlet.PortletException: com.liferay.portal.kernel.exception.ModelListenerException: java.lang.UnsupportedOperationException
at com.liferay.portal.kernel.portlet.LiferayPortlet.callActionMethod(LiferayPortlet.java:203)
at com.liferay.portal.kernel.portlet.bridges.mvc.MVCPortlet.callActionMethod(MVCPortlet.java:418)
at com.liferay.portal.kernel.portlet.LiferayPortlet.processAction(LiferayPortlet.java:93)
上記の例外が発生した場合、最大キューサイズが有効かどうかを確認してください。 有効でない場合は、以下の手順でAudit message max queue sizeを更新し、解決してください。
解決策
- Control Panel > Configuration > System Settings > Foundation > Auditに行きます。
- Editをクリックします。
- Adjust Auditメッセージの最大キューサイズが0より大きい。
- Gogoシェルに接続する:例:コマンドラインを開き、telnet localhost 11311を実行します。
- 実行コマンド:lb audit | grep Wiring
- というような出力が返ってきます:
284|Active | 10|Liferay Portal Security Audit Wiring (2.0.4)
- というような出力が返ってきます:
- 実行コマンド:リフレッシュ 284
- 注:284は、前のステップで取得したサービスIDです。
- ユーザー > ユーザーグループに移動します。
- ユーザーグループを作成し、 保存をクリックします。