PlayのノンブロッキングI/Oの挙動が確かめたくなったので、jconsoleでスレッド状態を監視した時のメモ。

playの eclipse/xxx.launch ファイルにJVM起動オプションを指定できるので、以下オプションを指定。

  • Dcom.sun.management.jmxremote
<?xml version="1.0" encoding="UTF-8"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
    <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
        <listEntry value="/demoapp"/>
    </listAttribute>
    <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
        <listEntry value="4"/>
    </listAttribute>
    <booleanAttribute key="org.eclipse.debug.core.appendEnvironmentVariables" value="true"/>
    <listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
        <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry containerPath=&quot;org.eclipse.jdt.launching.JRE_CONTAINER&quot; javaProject=&quot;demoapp&quot; path=&quot;1&quot; type=&quot;4&quot;/&gt;&#10;"/>
        <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry internalArchive=&quot;/demoapp/conf&quot; path=&quot;3&quot; type=&quot;2&quot;/&gt;&#10;"/>
        <listEntry value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#10;&lt;runtimeClasspathEntry id=&quot;org.eclipse.jdt.launching.classpathentry.defaultClasspath&quot;&gt;&#10;&lt;memento exportedEntriesOnly=&quot;false&quot; project=&quot;demoapp&quot;/&gt;&#10;&lt;/runtimeClasspathEntry&gt;&#10;"/>
    </listAttribute>
    <booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
    <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="play.server.Server"/>
    <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="demoapp"/>
    <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -Dplay.debug=yes -Dplay.id= -Dapplication.path=&quot;${project_loc:demoapp}&quot; -Djava.endorsed.dirs=&quot;/Users/ITPUser/dev/playdemo/play-1.2.1/framework/endorsed&quot; -javaagent:&quot;/Users/ITPUser/dev/playdemo/play-1.2.1/framework/play-1.2.1.jar&quot; -Dcom.sun.management.jmxremote"/>
</launchConfiguration>

18行目です。