骨のダイスを転がそう
2010-01-12
_ [ msmq ] メッセージキューを VBS から動かしてみる。
メッセージキューイングを試してみたくなった。
Const MQ_RECEIVE_ACCESS = 1 Const MQ_SEND_ACCESS = 2 Const MQ_PEEK_ACCESS = 32 Const MQ_ADMIN_ACCESS = 128 Const MQ_DENY_NONE = 0 Const MQ_DENY_RECEIVE_SHARE = 1 Dim objQueueInfo Set objQueueInfo = CreateObject("MSMQ.MSMQQueueInfo") Dim objMessage Set objMessage = CreateObject("MSMQ.MSMQMessage") objQueueInfo.PathName = ".\private$\input" Dim objDest Set objDest = objQueueInfo.Open(MQ_SEND_ACCESS ,MQ_DENY_NONE) If objDest.IsOpen = 1 Then objMessage.Priority = 4 objMessage.Label = "msg" & date & time objMessage.Body = "メッセージボディ" objMessage.Send objDest, 3 End If objDest.Close Set objDest = Nothing Set objMessage = Nothing Set objQueueInfo = Nothing
って、http://blogs.technet.com/junichia/archive/2008/06/27/idm-msmq-3-msmq.aspx で紹介されているサンプルスクリプトそのままだけど、Windows Server 2008 環境ということで、手元の WinXP では動かない。 objMessage.Send objDest の後に、3 が必要だった。Send メソッドのデフォルト値が変わったのか?
Const MQ_RECEIVE_ACCESS = 1 Const MQ_SEND_ACCESS = 2 Const MQ_PEEK_ACCESS = 32 Const MQ_ADMIN_ACCESS = 128 Const MQ_DENY_NONE = 0 Const MQ_DENY_RECEIVE_SHARE = 1 Set objQueueInfo_Input = CreateObject("MSMQ.MSMQQueueInfo") Set objMsgQueue_Src = CreateObject("MSMQ.MSMQQueue") Set objMessage = CreateObject("MSMQ.MSMQMessage") Set objManagement = CreateObject("MSMQ.MSMQManagement") objManagement.Init "" ,".\private$\Input" objQueueInfo_Input.Formatname = "DIRECT=OS:tca6006\private$\Input" Set objMsgQueue_Src = objQueueInfo_Input.Open(MQ_Receive_ACCESS ,MQ_DENY_NONE) If objManagement.MessageCount > 0 then wscript.echo objManagement.MessageCount & " 件のメッセージがあります" Set objMessage = objMsgQueue_Src.Receive() Wscript.Echo "本文:" & objMessage.Body Else Wscript.echo "メッセージがありません" End If
これでメッセージを取り出せる。おもしろい。
2010-01-13
_ [graphviz] subgraph のstyle を指定するには?
サンプルでは、subgraph が味気ない四角だったので何とかならんか、と思っていたところ、以下のような方法で cluster0 の角が丸くなるらしい。
digraph G { compound=true; subgraph cluster0 { style=rounded; a -> b; a -> c; b -> d; c -> d; } subgraph cluster1 { e -> g; e -> f; } b -> f [lhead=cluster1]; d -> e; c -> g [ltail=cluster0,lhead=cluster1]; c -> e [ltail=cluster0]; d -> h; }
CSS のクラスみたいに、ノードをグループ化して属性を設定するには、
{ node [.....]; "a"; "b"; } { node [.....]; "c"; "d"; }
とかやるみたい。カスケードはできるのか?