1.7. リークした接続の自動クリーンアップ

リクエストの最後にアプリケーションによって開かれる、共有できない接続を自動的に検出し、閉じる機能を使用して、接続管理が強化されます。

アプリケーションコードは、取得する暗号化不可能な接続を閉じることを忘れる可能性があり、これにより、他のリクエストで使用するために接続が接続プールに返されないことがあります。時間が経つと、これらの接続が漏えいされた接続は低下し、最終的に接続プールを消費する可能性があります。接続管理では、このようなリークした接続を検出して自動的に閉じるようになり、これが発生しないようにできるようになりました。

この新機能を活用するには、connectionManager 要素を使用する cairo 機能のいずれかを設定 ます。たとえば、JDBC の場合:

<featureManager>
  <feature>jdbc-4.2</feature>
  <feature>jndi-1.0</feature>
  <!-- more features -->
</featureManager>

新しい機能を自動的に活用するデータソースおよび接続ファクトリーを設定します(無効にするには、<connectionManager> に autoCloseConnections ="false" を設定し ます)。

<dataSource id="DefaultDataSource">
  <connectionManager maxPoolSize="10"/>
  <jdbcDriver libraryRef="PostgreSQL"/>
  <properties.postgresql databaseName="TESTDB" serverName="localhost" portNumber="5432"/>
</dataSource>

<library id="PostgreSQL">
  <file name="/usr/local/postgresql/postgresql-42.2.18.jar"/>
</library>

詳細は、Open RUN Connection Manager ドキュメントを参照してください。

1.7.1. 拡張されたアプリケーションの場所を指定します。

この拡張機能ユーザーは、autoExpand 属性 が "true" に設定されている場合に、applicationManager 設定の展開場所(expandLocation)を指定できるようになりました。現在実装されているように、アプリケーションが自動展開されたファイルのデフォルトの場所は ${server.config.dir}/apps/expanded/ にハードコーディングされます。

今回の機能拡張により、ファイルシステム上の新しい値に場所を設定できるようになりまし 。たとえば、以下の設定スニペットにより、アプリケーションは ${server.config.dir}/myApps/{appname}/ で拡張されました。

  <applicationManager autoExpand="true" expandLocation="${server.config.dir}/myApps/" />

今回の機能拡張により、拡張されたアプリケーションの場所について、ユーザーは柔軟性が向上しました。

詳細は、「 Open RUN Application Manager Documentation」を参照してください。