ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

HornetQ Native APIでsendしてるのにreceiveできない場合

ソース

	public static void main(String[] args) throws Exception {
		ServerLocator serverLocator = null;
		ClientSessionFactory factory = null;
		ClientSession session = null;

		HashMap<String, Object> map = new HashMap<>();
		map.put("host", "localhost");
		map.put("port", 5445);

		TransportConfiguration configuration = new TransportConfiguration(NettyConnectorFactory.class.getName(), map);

		serverLocator = HornetQClient.createServerLocatorWithoutHA(configuration);
		factory = serverLocator.createSessionFactory();

		session = factory.createSession(false, false, false);
		session.start();
		ClientMessage message = session.createMessage(false);

		final String queueName = "jms.queue.ExampleQueue";
		ClientProducer producer = session.createProducer(queueName);

		for (int i = 0; i < 100; i++) {
			message.getBodyBuffer().clear();
			message.getBodyBuffer().writeString("new message sent at " + new Date());
			producer.send(message);
		}

		ClientConsumer consumer = session.createConsumer(queueName);
		System.out.println(consumer.receive(1000));
		
		session.close();
		factory.close();
		serverLocator.close();
	}

100メッセージをsendしているのに、その直後のreceiveでメッセージが取れずnullが表示されます。

原因

コミットしてない

session = factory.createSession(false, false, false);
  • xa - whether the session support XA transaction semantic or not
  • autoCommitSends - true to automatically commit message sends, false to commit manually
  • autoCommitAcks - true to automatically commit message acknowledgement, false to commit manually

対策

ということなので、第二引数と第三引数をtrueにするとオートコミットになって解決する。

session = factory.createSession(false, true, true);

もしくは、send後に、session.commit()を呼ぶ。

session.commit();

30 Days Plank : Exercise and Chanllenge始めました。

唐突ですが、やっぱ時代は筋トレだよねってことで、以下の本を読んでみました。

筋トレが最強のソリューションである マッチョ社長が教える究極の悩み解決法

筋トレが最強のソリューションである マッチョ社長が教える究極の悩み解決法

読んで、筋トレしたい気持ちは高まったのですが、著者が運営している「DIET GENIUS 8週間チャレンジ」ってのが、ぱっと見めっちゃキツそうだったので、気持ちがなえてしまいました。

dietgenius.jp

でも、下手に運動して100数十キロカロリーを消費するだけよりも、筋肉をつけて基礎代謝をあげることで、消費カロリーをあげる方が良い!という話には同意。そこで、手軽にできるトレーニングとして、プランクがあったのを思い出し、久々にやってみることにしました。

今どきはなんでもアプリがあるもので、いくつか探したうち、「30 Days Plank」ってのが良さそうだったので、早速ダウンロードして始めてみました。

30 Days Plank : Exercise and Chanllenge

30 Days Plank : Exercise and Chanllenge

  • ShuRong Deng
  • ヘルスケア/フィットネス
  • 無料

まだ2日目なので余裕ですが、30日まで完走出来るようがんばっていきたいです。
このアプリの残念なところは、トレーニング終わってツイートボタン押せるところまでは良いのですが、デフォルトでセットされるつぶやきが140文字を超えてて、そのままではツイート出来ないってことです。。
なので、実は他のアプリの方が良いかも。

HornetQでクラスタ構成にしたとき、Failed to connect to server localhost/127.0.0.1:1099が出るときの対処法

config/stand-alone/clustered/jndi.properties

java.naming.provider.url=jnp://localhost:1099

の行を追加すると、下記のようなエラーが出る。

エラー内容

22:18:20,114 INFO  [org.hornetq.integration.bootstrap] HQ101000: Starting HornetQ Server
22:18:20,949 WARN  [org.hornetq.core.server] HQ222018: AIO was not located on this platform, it will fall back to using pure Java NIO. If your platform is Linux, install LibAIO to enable the AIO journal
22:18:21,045 INFO  [org.hornetq.core.server] HQ221000: live server is starting with configuration HornetQ Configuration (clustered=true,backup=false,sharedStore=true,journalDirectory=../data/journal,bindingsDirectory=../data/bindings,largeMessagesDirectory=../data/large-messages,pagingDirectory=../data/paging)
22:18:21,048 INFO  [org.hornetq.core.server] HQ221006: Waiting to obtain live lock
22:18:21,076 WARN  [org.jnp.server.NamingBeanImpl] Context.PROVIDER_URL in server jndi.properties, url=localhost:1099
22:18:27,100 WARN  [org.hornetq.core.server] HQ222165: Error starting naming server: javax.naming.CommunicationException: Could not obtain connection to any of these urls: jnp://localhost:1099 and discovery failed with error: javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out] [Root exception is javax.naming.CommunicationException: Failed to connect to server localhost/127.0.0.1:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server localhost/127.0.0.1:1099 [Root exception is java.net.ConnectException: Connection refused: connect]]]
        at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1763) [jboss-mc.jar:]
        at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:693) [jboss-mc.jar:]
        at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686) [jboss-mc.jar:]
        at javax.naming.InitialContext.lookup(Unknown Source) [rt.jar:1.8.0_131]
        at org.jnp.server.NamingBeanImpl.start(NamingBeanImpl.java:183) [jboss-mc.jar:]
        at org.hornetq.jms.server.impl.StandaloneNamingServer$ServerActivateCallback.preActivate(StandaloneNamingServer.java:121) [hornetq-jms-server.jar:]
        at org.hornetq.core.server.impl.HornetQServerImpl.callPreActiveCallbacks(HornetQServerImpl.java:1436) [hornetq-server.jar:]
        at org.hornetq.core.server.impl.HornetQServerImpl.initialisePart1(HornetQServerImpl.java:1506) [hornetq-server.jar:]
        at org.hornetq.core.server.impl.HornetQServerImpl.access$1100(HornetQServerImpl.java:172) [hornetq-server.jar:]
        at org.hornetq.core.server.impl.HornetQServerImpl$SharedStoreLiveActivation.run(HornetQServerImpl.java:2144) [hornetq-server.jar:]
        at org.hornetq.core.server.impl.HornetQServerImpl.start(HornetQServerImpl.java:432) [hornetq-server.jar:]
        at org.hornetq.jms.server.impl.JMSServerManagerImpl.start(JMSServerManagerImpl.java:483) [hornetq-jms-server.jar:]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_131]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [rt.jar:1.8.0_131]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [rt.jar:1.8.0_131]
        at java.lang.reflect.Method.invoke(Unknown Source) [rt.jar:1.8.0_131]
        at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:59) [jboss-mc.jar:]
        at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:150) [jboss-mc.jar:]
        at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:241) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:109) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:70) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.dependency.LifecycleAction.installActionInternal(LifecycleAction.java:221) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:774) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:540) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deployBean(AbstractKernelDeployer.java:319) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deployBeans(AbstractKernelDeployer.java:297) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deploy(AbstractKernelDeployer.java:130) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.deployment.xml.BeanXMLDeployer.deploy(BeanXMLDeployer.java:96) [jboss-mc.jar:]
        at org.hornetq.integration.bootstrap.HornetQBootstrapServer.deploy(HornetQBootstrapServer.java:236) [hornetq-bootstrap.jar:]
        at org.hornetq.integration.bootstrap.HornetQBootstrapServer.deploy(HornetQBootstrapServer.java:206) [hornetq-bootstrap.jar:]
        at org.hornetq.integration.bootstrap.HornetQBootstrapServer.bootstrap(HornetQBootstrapServer.java:154) [hornetq-bootstrap.jar:]
        at org.jboss.kernel.plugins.bootstrap.AbstractBootstrap.run(AbstractBootstrap.java:83) [jboss-mc.jar:]
        at org.hornetq.integration.bootstrap.HornetQBootstrapServer.run(HornetQBootstrapServer.java:115) [hornetq-bootstrap.jar:]
        at org.hornetq.integration.bootstrap.HornetQBootstrapServer.main(HornetQBootstrapServer.java:69) [hornetq-bootstrap.jar:]
Caused by: javax.naming.CommunicationException: Failed to connect to server localhost/127.0.0.1:1099 [Root exception is javax.naming.ServiceUnavailableException: Failed to connect to server localhost/127.0.0.1:1099 [Root exception is java.net.ConnectException: Connection refused: connect]]
        at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:335) [jboss-mc.jar:]
        at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1734) [jboss-mc.jar:]
        ... 45 more
Caused by: javax.naming.ServiceUnavailableException: Failed to connect to server localhost/127.0.0.1:1099 [Root exception is java.net.ConnectException: Connection refused: connect]
        at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:305) [jboss-mc.jar:]
        ... 46 more
Caused by: java.net.ConnectException: Connection refused: connect
        at java.net.DualStackPlainSocketImpl.connect0(Native Method) [rt.jar:1.8.0_131]
        at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) [rt.jar:1.8.0_131]
        at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) [rt.jar:1.8.0_131]
        at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) [rt.jar:1.8.0_131]
        at java.net.AbstractPlainSocketImpl.connect(Unknown Source) [rt.jar:1.8.0_131]
        at java.net.PlainSocketImpl.connect(Unknown Source) [rt.jar:1.8.0_131]
        at java.net.SocksSocketImpl.connect(Unknown Source) [rt.jar:1.8.0_131]
        at java.net.Socket.connect(Unknown Source) [rt.jar:1.8.0_131]
        at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:97) [jboss-mc.jar:]
        at org.jnp.interfaces.TimedSocketFactory.createSocket(TimedSocketFactory.java:82) [jboss-mc.jar:]
        at org.jnp.interfaces.NamingContext.getServer(NamingContext.java:301) [jboss-mc.jar:]
        ... 46 more

22:18:27,188 INFO  [org.hornetq.core.server] HQ221013: Using NIO Journal
22:18:27,223 WARN  [org.hornetq.core.server] HQ222007: Security risk! HornetQ is running with the default cluster admin user and default password. Please see the HornetQ user guide, cluster chapter, for instructions on how to change this.
22:18:27,338 INFO  [org.hornetq.core.server] HQ221043: Adding protocol support CORE
22:18:27,342 INFO  [org.hornetq.core.server] HQ221043: Adding protocol support AMQP
22:18:27,346 INFO  [org.hornetq.core.server] HQ221043: Adding protocol support STOMP
22:18:27,446 INFO  [org.hornetq.core.server] HQ221034: Waiting to obtain live lock
22:18:27,446 INFO  [org.hornetq.core.server] HQ221035: Live Server Obtained live lock
22:18:34,226 INFO  [org.hornetq.core.server] HQ221003: trying to deploy queue jms.queue.DLQ

原因

Standaloneサーバ内のjndiサーバが起動する前に、jndiクライアントとして接続しに行こうとするから?(原因不明)

対策

jndi.properties

java.naming.provider.url=jnp://localhost:1099

を追加しない。
なくても普通にクラスターキューが使える。

HornetQでクラスタ構成にしたとき、HQ212034が出続ける場合の対処法

事象

下記のように、HQ212034のワーニングメッセージが繰り返し表示される。下記の通り、1回だけ表示されるなら無視してよいが、繰り返し表示される場合は問題がある。

20:59:08,455 WARN  [org.hornetq.core.client] HQ212034: There are more than one servers on the network broadcasting the same node id. You will see this message exactly once (per node) if a node is restarted, in which case it can be safely ignored. But if it is logged continuously it means you really do have more than one node on the same network active concurrently with the same node id. This could occur if you have a backup node active at the same time as its live node. nodeID=7bd67d54-4603-11e7-b22d-3906e90608b0
20:59:11,493 WARN  [org.hornetq.core.client] HQ212034: There are more than one servers on the network broadcasting the same node id. You will see this message exactly once (per node) if a node is restarted, in which case it can be safely ignored. But if it is logged continuously it means you really do have more than one node on the same network active concurrently with the same node id. This could occur if you have a backup node active at the same time as its live node. nodeID=7bd67d54-4603-11e7-b22d-3906e90608b0
...

原因

data/journal以下のファイルをコピペしたのが問題。

standaloneで動作させたHornetQのフォルダをコピーして、HornetQA、HornetQBの2つを作った際、不要なjournalファイルもコピーされてしまった。

対策

data/journal以下のファイルを全て削除する。

うまくいくと下記のようにコンソールに表示されます。

...
21:02:41,447 INFO  [org.hornetq.core.server] HQ221007: Server is now live
21:02:41,448 INFO  [org.hornetq.core.server] HQ221001: HornetQ Server version 2.5.0.SNAPSHOT (Wild Hornet, 124) [36142974-46c2-11e7-9e68-d926168704eb]
21:02:41,606 INFO  [org.hornetq.core.server] HQ221027: Bridge ClusterConnectionBridge@7fccef71 [name=sf.my-cluster.33add7f4-46c2-11e7-8de4-b158f74a0e2a, queue=QueueImpl[name=sf.my-cluster.33add7f4-46c2-11e7-8de4-b158f74a0e2a, postOffice=PostOfficeImpl [server=HornetQServerImpl::serverUUID=36142974-46c2-11e7-9e68-d926168704eb]]@5556b4bd targetConnector=ServerLocatorImpl (identity=(Cluster-connection-bridge::ClusterConnectionBridge@7fccef71 [name=sf.my-cluster.33add7f4-46c2-11e7-8de4-b158f74a0e2a, queue=QueueImpl[name=sf.my-cluster.33add7f4-46c2-11e7-8de4-b158f74a0e2a, postOffice=PostOfficeImpl [server=HornetQServerImpl::serverUUID=36142974-46c2-11e7-9e68-d926168704eb]]@5556b4bd targetConnector=ServerLocatorImpl [initialConnectors=[TransportConfiguration(name=netty, factory=org-hornetq-core-remoting-impl-netty-NettyConnectorFactory) ?port=5445&host=localhost], discoveryGroupConfiguration=null]]::ClusterConnectionImpl@263833514[nodeUUID=36142974-46c2-11e7-9e68-d926168704eb, connector=TransportConfiguration(name=netty, factory=org-hornetq-core-remoting-impl-netty-NettyConnectorFactory) ?port=6445&host=localhost, address=jms, server=HornetQServerImpl::serverUUID=36142974-46c2-11e7-9e68-d926168704eb])) [initialConnectors=[TransportConfiguration(name=netty, factory=org-hornetq-core-remoting-impl-netty-NettyConnectorFactory) ?port=5445&host=localhost], discoveryGroupConfiguration=null]] is connected

HornetQでクラスタプロパティを有効にしたとき、NumberFormatExceptionが出る場合の対処法

HornetQ 2.4.0Final

run.batのCONFIG_DIRの"non-clustered"を"clustered"に変更して、CLUSTER_PROPSの行をコメントインする。

クラスタプロパティを有効にしたrun.bat

@ echo off
setlocal ENABLEDELAYEDEXPANSION
set HORNETQ_HOME=..
IF "a%1"== "a" ( 
set CONFIG_DIR=%HORNETQ_HOME%\config\stand-alone\clustered
) ELSE (
SET CONFIG_DIR=%1
)
set CLASSPATH=%CONFIG_DIR%;%HORNETQ_HOME%\schemas\
REM you can use the following line if you want to run with different ports
set CLUSTER_PROPS="-Djnp.port=1099 -Djnp.rmiPort=1098 -Djnp.host=localhost -Dhornetq.remoting.netty.host=localhost -Dhornetq.remoting.netty.port=5445"
set JVM_ARGS=%CLUSTER_PROPS% -XX:+UseParallelGC  -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -Xms512M -Xmx1024M -Dhornetq.config.dir=%CONFIG_DIR% -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Djava.util.logging.config.file=%CONFIG_DIR%\logging.properties -Djava.library.path=.
REM export JVM_ARGS="-Xmx512M -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Djava.util.logging.config.file=%CONFIG_DIR%\logging.properties -Dhornetq.config.dir=$CONFIG_DIR -Djava.library.path=. -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
for /R ..\lib %%A in (*.jar) do (
SET CLASSPATH=!CLASSPATH!;%%A
)
mkdir ..\logs
echo ***********************************************************************************
echo "java %JVM_ARGS% -classpath %CLASSPATH% org.hornetq.integration.bootstrap.HornetQBootstrapServer hornetq-beans.xml"
echo ***********************************************************************************
java %JVM_ARGS% -classpath "%CLASSPATH%" org.hornetq.integration.bootstrap.HornetQBootstrapServer hornetq-beans.xml

そうすると、下記のような結果になる。

run.batを実行した結果

サブディレクトリまたはファイル ..\logs は既に存在します。
***********************************************************************************
"java "-Djnp.port=1099 -Djnp.rmiPort=1098 -Djnp.host=localhost -Dhornetq.remoting.netty.host=localhost -Dhornetq.remoting.netty.port=5445" -XX:+UseParallelGC  -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -Xms512M -Xmx1024M -Dhornetq.config.dir=..\config\stand-alone\clustered -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Djava.util.logging.config.file=..\config\stand-alone\clustered\logging.properties -Djava.library.path=. -classpath ..\config\stand-alone\clustered;..\schemas\;C:\app\hornetq-2.4.0.Finala\lib\hornetq-aerogear-integration.jar;C:\app\hornetq-2.4.0.Finala\lib\hornetq-amqp-protocol.jar;C:\app\hornetq-2.4.0.Finala\lib\hornetq-bootstrap.jar;C:\app\hornetq-2.4.0.Finala\lib\hornetq-commons.jar;C:\app\hornetq-2.4.0.Finala\lib\hornetq-core-client.jar;C:\app\hornetq-2.4.0.Finala\lib\hornetq-jboss-as-integration.jar;C:\app\hornetq-2.4.0.Finala\lib\hornetq-jms-client.jar;C:\app\hornetq-2.4.0.Finala\lib\hornetq-jms-server.jar;C:\app\hornetq-2.4.0.Finala\lib\hornetq-journal.jar;C:\app\hornetq-2.4.0.Finala\lib\hornetq-native.jar;C:\app\hornetq-2.4.0.Finala\lib\hornetq-ra.jar;C:\app\hornetq-2.4.0.Finala\lib\hornetq-rest.jar;C:\app\hornetq-2.4.0.Finala\lib\hornetq-server.jar;C:\app\hornetq-2.4.0.Finala\lib\hornetq-service-sar.jar;C:\app\hornetq-2.4.0.Finala\lib\hornetq-spring-integration.jar;C:\app\hornetq-2.4.0.Finala\lib\hornetq-stomp-protocol.jar;C:\app\hornetq-2.4.0.Finala\lib\hornetq-tools.jar;C:\app\hornetq-2.4.0.Finala\lib\hornetq-twitter-integration.jar;C:\app\hornetq-2.4.0.Finala\lib\jboss-jms-api.jar;C:\app\hornetq-2.4.0.Finala\lib\jboss-mc.jar;C:\app\hornetq-2.4.0.Finala\lib\jnp-client.jar;C:\app\hornetq-2.4.0.Finala\lib\jnpserver.jar;C:\app\hornetq-2.4.0.Finala\lib\netty.jar;C:\app\hornetq-2.4.0.Finala\lib\proton-api.jar;C:\app\hornetq-2.4.0.Finala\lib\proton-j-impl.jar;C:\app\hornetq-2.4.0.Finala\lib\proton-jms.jar org.hornetq.integration.bootstrap.HornetQBootstrapServer hornetq-beans.xml"
***********************************************************************************
22:17:47,318 INFO  [org.hornetq.integration.bootstrap] HQ101000: Starting HornetQ Server
22:17:48,098 WARN  [org.hornetq.core.server] HQ222018: AIO was not located on this platform, it will fall back to using pure Java NIO. If your platform is Linux, install LibAIO to enable the AIO journal
22:17:48,146 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] Error installing to Configured: name=StandaloneServer state=Instantiated: java.lang.RuntimeException: Error configuring property: port for StandaloneServer
        at org.jboss.kernel.plugins.dependency.ConfigureAction.dispatchSetProperty(ConfigureAction.java:112) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.dependency.ConfigureAction.setAttributes(ConfigureAction.java:85) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.dependency.ConfigureAction.installActionInternal(ConfigureAction.java:44) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:774) [jboss-mc.jar:]
        at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:540) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deployBean(AbstractKernelDeployer.java:319) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deployBeans(AbstractKernelDeployer.java:297) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deploy(AbstractKernelDeployer.java:130) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.deployment.xml.BeanXMLDeployer.deploy(BeanXMLDeployer.java:96) [jboss-mc.jar:]
        at org.hornetq.integration.bootstrap.HornetQBootstrapServer.deploy(HornetQBootstrapServer.java:236) [hornetq-bootstrap.jar:]
        at org.hornetq.integration.bootstrap.HornetQBootstrapServer.deploy(HornetQBootstrapServer.java:206) [hornetq-bootstrap.jar:]
        at org.hornetq.integration.bootstrap.HornetQBootstrapServer.bootstrap(HornetQBootstrapServer.java:154) [hornetq-bootstrap.jar:]
        at org.jboss.kernel.plugins.bootstrap.AbstractBootstrap.run(AbstractBootstrap.java:83) [jboss-mc.jar:]
        at org.hornetq.integration.bootstrap.HornetQBootstrapServer.run(HornetQBootstrapServer.java:115) [hornetq-bootstrap.jar:]
        at org.hornetq.integration.bootstrap.HornetQBootstrapServer.main(HornetQBootstrapServer.java:69) [hornetq-bootstrap.jar:]
Caused by: java.lang.NumberFormatException: For input string: "1099 -Djnp.rmiPort=1098 -Djnp.host=localhost -Dhornetq.remoting.netty.host=localhost -Dhornetq.remoting.netty.port=5445"
        at java.lang.NumberFormatException.forInputString(Unknown Source) [rt.jar:1.8.0_131]
        at java.lang.Integer.parseInt(Unknown Source) [rt.jar:1.8.0_131]
        at java.lang.Integer.valueOf(Unknown Source) [rt.jar:1.8.0_131]
        at java.lang.Integer.decode(Unknown Source) [rt.jar:1.8.0_131]
        at com.sun.beans.editors.IntegerEditor.setAsText(Unknown Source) [rt.jar:1.8.0_131]
        at org.jboss.reflect.plugins.ValueConvertor.convertValue(ValueConvertor.java:139) [jboss-mc.jar:]
        at org.jboss.reflect.spi.PrimitiveInfo.convertValue(PrimitiveInfo.java:248) [jboss-mc.jar:]
        at org.jboss.beans.metadata.plugins.StringValueMetaData.getValue(StringValueMetaData.java:131) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.dependency.PropertyDispatchWrapper.execute(PropertyDispatchWrapper.java:111) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:109) [jboss-mc.jar:]
        at org.jboss.kernel.plugins.dependency.ConfigureAction.dispatchSetProperty(ConfigureAction.java:107) [jboss-mc.jar:]
        ... 24 more

22:17:48,207 INFO  [org.hornetq.core.server] HQ221000: live server is starting with configuration HornetQ Configuration (clustered=true,backup=false,sharedStore=true,journalDirectory=../data/journal,bindingsDirectory=../data/bindings,largeMessagesDirectory=../data/large-messages,pagingDirectory=../data/paging)
22:17:48,210 INFO  [org.hornetq.core.server] HQ221006: Waiting to obtain live lock
22:17:48,240 INFO  [org.hornetq.core.server] HQ221013: Using NIO Journal
22:17:48,269 WARN  [org.hornetq.core.server] HQ222007: Security risk! HornetQ is running with the default cluster admin user and default password. Please see the HornetQ user guide, cluster chapter, for instructions on how to change this.
22:17:48,362 INFO  [org.hornetq.core.server] HQ221043: Adding protocol support CORE
22:17:48,365 INFO  [org.hornetq.core.server] HQ221043: Adding protocol support AMQP
22:17:48,369 INFO  [org.hornetq.core.server] HQ221043: Adding protocol support STOMP
22:17:48,471 INFO  [org.hornetq.core.server] HQ221034: Waiting to obtain live lock
22:17:48,472 INFO  [org.hornetq.core.server] HQ221035: Live Server Obtained live lock
22:17:53,974 INFO  [org.hornetq.core.server] HQ221003: trying to deploy queue jms.queue.DLQ
...

原因はrun.batのバグ
CLUSTER_PROPSのダブルクォートが不要。

間違い

set CLUSTER_PROPS="-Djnp.port=1099 -Djnp.rmiPort=1098 -Djnp.host=localhost -Dhornetq.remoting.netty.host=localhost -Dhornetq.remoting.netty.port=5445"

正解

set CLUSTER_PROPS=-Djnp.port=1099 -Djnp.rmiPort=1098 -Djnp.host=localhost -Dhornetq.remoting.netty.host=localhost -Dhornetq.remoting.netty.port=5445

個人型確定拠出年金に加入した話

去年、たまたま読んだ日経ビジネスアソシエ2017年1月号に載ってたiDeCo(個人型確定拠出年金)。入れる条件が緩和したとかで話題になってました。

www.dcnenkin.jp

良く調べたら、自分の勤務する会社が企業型確定拠出年金(401k)をやっておらず、確定給付企業年金等(三階建て部分;厚生年金基金、私学共済、石炭鉱業年金基金)もやってないので、条件緩和前からそもそも入れるものでした。早速手続きして、4月くらいから始まりました。

ざっくり計算ですが、23,000円/月、276,000円/年、およそ3割が課税控除となり、82,800円/年の節税になるそうです。自分の口座から引き落とししても良いのですが、給与口座から自動引き落としにすると、自分で確定申告しなくても自動で課税控除の恩恵が受けられます。(単に手間の問題ですが)

加えて、23,000円/月の拠出金で金融資産を運用するわけですが、ここで運用損益がどうなるかも重要です。いわゆるインデックス投資がよいのではないかと思ってますが、どうなるかは結果次第でしょう。

しかし、この手の知ってると得する、知らないと損するとかいうの世の中に多くないですかね。庶民がお上から税金を取り戻せる制度は、最大限活用すべきです。

NEC Wifi 無線LAN ルーター Aterm WG1800HP2購入

こないだ光ホームゲートウェイを交換した直後は、しばらく快適だったのですが、近ごろ夜になると(朝でも?)ネット接続が遅くなったり、つながらなくなったり、色々不具合が生じていました。 

 診断手順

  1. 光ホームゲートウェイに有線LAN接続してみる
    →OK
  2. 無線LANルーターに有線LAN接続してみる
    →OK
  3. 無線LANルーターに近いところで無線接続してみる
    →OK
  4. 無線LANルーターに遠いところで無線接続してみる
    →まあまあOK

というわけで、初期診断した際は特に問題なく、また数日様子見していたのですが、やっぱり時間帯なのか時々無線LANが不安定になることがあり、無線LAN不安定になったタイミングで有線LAN接続は安定していたため、やはり無線LANの問題だろうと結論づけました。そういえば、Appleるんるんでも無線LANルーターは消耗品みたいな話されてましたね。

Web R@dio Station“くりらじ”

最近はゲーミングルーターとかいうのもあるらしく、一般に無線LAN親機って言われるジャンルも進化しているようですが、子機とかの都合もありNEC一択。地元のケーズデンキで店員さんにつかまり雑談したのち、エントリーモデルよりは、ミドルクラスの方がいいだろうと思い、下記のものにしました。 

有線や無線LANルーターに近いところでは200Mbps程度、遠いところでも5GHzなら30~40Mbps、2.4GHzでも15Mbpsくらい安定して出るようです。これでしばらく安定して運用できそうです。