骨のダイスを転がそう

2009|01|02|03|04|05|06|07|10|12|
2010|01|02|03|04|05|06|07|08|09|10|11|
2011|02|03|05|06|07|08|09|10|11|12|
2012|01|02|04|05|09|10|11|12|
2013|01|02|04|
2014|11|
2015|01|04|05|
2016|06|07|08|09|11|
2017|01|02|03|04|
2018|03|

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";
}

とかやるみたい。カスケードはできるのか?