ITコンサルの日常

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

TOEICのPercentile rankを誤解していた件

f:id:taka_2:20170617194329j:plain

Percentile rankって偏差値みたいなものかと思ってたら違うらしい。

以下引用。

あなたのスコアをある母集団の中においた場合に、あなたのスコアに満たない受験者が何%いるかを示しています。今回の母集団は、2014年1月から2016年12月に世界中で実施したTOEIC Listening & Reading公開テストの全受験者です。 

 というわけで、受験した回の中での位置づけってわけでもないんですね。いずれにしても、Readingはそこそこいけてるけど(もちろん、満点に比べたら全然まだまだですが)、Listeningは半分よりも下ってことなので、Listeningに力を入れるべきなのは言わずもがなですよね。

I-O DATA Wi-Fi 無線LAN 子機 WN-AC867Uはダメだった件

自室のPCを5GHz帯の無線LANに対応すべく、無線LAN子機を買い換えました。が、しかし、これが残念ながらはずれでした。

たぶん、無線LAN親機までの距離があるし、壁とか障害物も多いので、この手の状況には弱い商品だったのかも知れません。もしかしたら、障害物等少ない環境では、普通に動作する可能性もあります。

同じ場所でiPhone無線LANでつなぐと普通の速度でつながるので、やはり問題は無線LAN子機でしょうってことで、前のBuffaloの2.4GHzのみ対応のものに戻したところ、まあ快適になりました。認めたくないけど、電波強度的な意味ではBaffaloの方がいいのかなあ。

 

第220回TOEIC Listening & Reading公開テスト【2017年5月21日(日)】の結果

f:id:taka_2:20170612214152p:plain

Listening335点、Reading395点で、Total730点でした。
前々回の730点に戻りました。これが実力か。。

Listening下手したら、偏差値50切ってるかも。ここを強化することがスコアアップの突破口なんでしょう。
英会話スクールに行ってみたり、シャドーイングやディクテーションをやることが、リスニングのスコアアップにつながることは分かっているのですが。。気兼ねなく声を出せる環境が欲しいですね。

次回は225回に受けます。

HornetQ ClientRequestor#requestが応答なしになる場合の対処

ソースの断片

ClientSession managedsession = factory.createSession();
ClientRequestor requestor = new ClientRequestor(managedsession, "hornetq.management");
ClientMessage messagemanaged = managedsession.createMessage(false);
ManagementHelper.putAttribute(messagemanaged, queueName, "messageCount");
managedsession.start();
ClientMessage reply = requestor.request(messagemanaged);
Integer count = (Integer)ManagementHelper.getResult(reply);
System.out.println("There are " + count + " messages in exampleQueue");

キューからメッセージ数を取得するサンプル。
これを実行すると、

ClientMessage reply = requestor.request(messagemanaged);

の行で応答なしになる場合がある。

原因

ClientRequestor requestor = new ClientRequestor(managedsession, "hornetq.management");

キュー名が違う。
誤)"hornetq.management"
正)"jms.queue.hornetq.management"

対策

ClientRequestor requestor = new ClientRequestor(managedsession, "jms.queue.hornetq.management");

ソース

github.com

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

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