Author |
Message
|
michael.da |
Posted: Fri May 05, 2006 4:10 am Post subject: MQMD header values |
|
|
Novice
Joined: 30 Mar 2006 Posts: 13 Location: Frankfurt / Germany
|
Hi
I'm writing a user-defined input node in java. I have created a blanck MQMD header and have to fill it. How can I create a new MsgId and where do I get the AccountingToken and GroupId?
Regards
Michael |
|
Back to top |
|
 |
michael.da |
Posted: Fri May 05, 2006 7:03 am Post subject: |
|
|
Novice
Joined: 30 Mar 2006 Posts: 13 Location: Frankfurt / Germany
|
Here is my MessageTree:
Mytrace, created 15:52
(
(0x01000000):Properties = (
(0x03000000):MessageSet = ''
(0x03000000):MessageType = ''
(0x03000000):MessageFormat = ''
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 1208
(0x03000000):Transactional = TRUE
(0x03000000):Persistence = FALSE
(0x03000000):CreationTime = GMTTIMESTAMP '2006-05-05 13:52:37.462'
(0x03000000):ExpirationTime = -1
(0x03000000):Priority = 0
(0x03000000):ReplyIdentifier = X''
(0x03000000):ReplyProtocol = 'MQ'
(0x03000000):Topic = NULL
(0x03000000):ContentType = ''
)
(0x01000000):MQMD = (
(0x03000000):Transactional = TRUE
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 1208
(0x03000000):Format = ''
(0x03000000):Version = 2
(0x03000000):Report = 0
(0x03000000):MsgType = 1
(0x03000000):Expiry = -1
(0x03000000):Feedback = 0
(0x03000000):Priority = 0
(0x03000000):Persistence = 0
(0x03000000):MsgId = 64
(0x03000000):CorrelId = X''
(0x03000000):BackoutCount = 0
(0x03000000):ReplyToQ = ''
(0x03000000):ReplyToQMgr = 'WBRK6_DEFAULT_QUEUE_MANAGER'
(0x03000000):UserIdentifier = 'kaiser'
(0x03000000):AccountingToken = X'0000000000000000000000000000000000000000000000000000000000000000'
(0x03000000):ApplIdentityData = ''
(0x03000000):PutApplType = 11
(0x03000000):PutApplName = '30\eclipse\jre\bin\javaw.exe'
(0x03000000):PutDate = DATE '2006-05-05'
(0x03000000):PutTime = GMTTIME '13:52:37.462'
(0x03000000):ApplOriginData = ''
(0x03000000):GroupId = ''
(0x03000000):MsgSeqNumber = 1
(0x03000000):Offset = 0
(0x03000000):MsgFlags = 0
(0x03000000):OriginalLength = -1
)
)
to provide you with more information to the mistake, here is a trace output from my message flow:
Mytrace, created 15:53
(
(0x01000000):RecoverableException = (
(0x03000000):File = 'F:\build\S000_P\src\DataFlowEngine\ImbDataFlowNode.cpp'
(0x03000000):Line = 616
(0x03000000):Function = 'ImbDataFlowNode::createExceptionList'
(0x03000000):Type = 'ComIbmMQOutputNode'
(0x03000000):Name = 'FileInputTest#FCMComposite_1_2'
(0x03000000):Label = 'FileInputTest.MYFILEOUTPUT'
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 2230
(0x03000000):Text = 'Node throwing exception'
(0x01000000):ParserException = (
(0x03000000):File = 'F:\build\S000_P\src\DataFlowEngine\ImbMqmdParser.cpp'
(0x03000000):Line = 1073
(0x03000000):Function = 'ImbMqmdParser::writeMqmd'
(0x03000000):Type = 'ComIbmJniNode'
(0x03000000):Name = 'FileInputTest#FCMComposite_1_1'
(0x03000000):Label = 'FileInputTest.ProfiBasicInput'
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 2
(0x03000000):Number = 5912
(0x03000000):Text = 'Exception whilst writing field named'
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'MQMD'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'MsgId'
)
(0x01000000):Insert = (
(0x03000000):Type = 2
(0x03000000):Text = '64'
)
(0x01000000):RecoverableException = (
(0x03000000):File = 'F:\build\S000_P\src\CommonServices\ImbValue.cpp'
(0x03000000):Line = 936
(0x03000000):Function = 'ImbValue::typeError'
(0x03000000):Type = ''
(0x03000000):Name = ''
(0x03000000):Label = ''
(0x03000000):Catalog = 'BIPv600'
(0x03000000):Severity = 3
(0x03000000):Number = 2328
(0x03000000):Text = 'Wrong type exception'
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'INTEGER'
)
(0x01000000):Insert = (
(0x03000000):Type = 5
(0x03000000):Text = 'BLOB'
)
)
)
)
) |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri May 05, 2006 8:33 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
You appear to be trying to insert an Integer value into the MsgID, which is properly a BLOB value, that is to say a byte[]. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
michael.da |
Posted: Sun May 07, 2006 11:03 pm Post subject: |
|
|
Novice
Joined: 30 Mar 2006 Posts: 13 Location: Frankfurt / Germany
|
I'm trying to create a new MsgID by setting MsgId to MQPMO_NEW_MSG_ID. This should generate a new ID. The ID should contains the first 12 characters of the queue-manager name and a value derived from the system clock.
I don't read messages from a queue, therefore I think that my node don't know about the queue-manager. |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon May 08, 2006 4:56 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
MQPMO_NEW_MSG_ID is an MQ Put Message Option.
It is not a function that returns a new Message Id. It is an Integer value that is passed to the MQ PUT statement that instructs the MQ PUT statement to construct a new message id and insert it into the MsgId Field.
You can set a control on the MQOutput node that will instruct it to use this option when it PUTs the message - the control is called 'New Message ID".
If you are not using an MQOuptut node, you will need to construct a 24 byte BLOB value yourself. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
michael.da |
Posted: Fri May 12, 2006 12:41 am Post subject: |
|
|
Novice
Joined: 30 Mar 2006 Posts: 13 Location: Frankfurt / Germany
|
It works!
the solution was to manually create a new mqmd header with the elements version and format and connect my input node with the MQOutput node. I configured the MQOutput to create a new msgID. Between the input and the output node, I placed a ESQL node. This node only creates a copy of my message and propagates the copy to the outputTerminal. Now the MQOutput is able to create a new msgID and my input node works fine. |
|
Back to top |
|
 |
|