ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » JPLUGIN creating RFH2 header?

Post new topic  Reply to topic
 JPLUGIN creating RFH2 header? « View previous topic :: View next topic » 
Author Message
ThomasTieke
PostPosted: Thu Sep 25, 2003 1:19 am    Post subject: JPLUGIN creating RFH2 header? Reply with quote

Newbie

Joined: 25 Sep 2003
Posts: 2
Location: Germany, Frankfurt am Main

Hello all!

I successfully built a plugin node that creates a message including "normal" MQMD and body elements. When I add the code for the RFH2 header, the MQPUT of the MQOutput node that takes the output of my plugin node fails with Reason Code = 2334 - "MQRC_RFH_ERROR
(2334, X’91E’) MQRFH or MQRFH2 structure not valid."

My code looks like this:

Code:

MbElement elemOut = elemOutRoot.getFirstElementByPath("/MQMD/Format");
elemOut.setValue("MQHRF2  ");

MbElement   rfh2 = elemOutRoot.getFirstElementByPath("/MQMD");
rfh2 = rfh2.createElementAfter(MbElement.TYPE_NAME);
rfh2.setName("MQRFH2");
setProperty(rfh2, "Version", 2);
setProperty(rfh2, "Format", "MQSTR   ");
setProperty(rfh2, "Encoding", encoding.intValue());
setProperty(rfh2, "CodedCharSetId", ccsid.intValue());
setProperty(rfh2, "Flags", 0);
setProperty(rfh2, "NameValueCCSID", 1208);

// helper methods ...

protected   MbElement   getcreateLastChild(MbElement elem, String name)
      throws   MbException
{
   return   getcreateLastChild(elem, name, MbElement.TYPE_NAME);
}

protected   MbElement   getcreateLastChild(MbElement elem, String name, int flag)
      throws   MbException
{
   MbElement   elemChild = elem.getFirstElementByPath("./" + name);
   if (null != elemChild)
      return   elemChild;
         
   elemChild = elem.createElementAsLastChild(flag);
   elemChild.setName(name);

   return   elemChild;
}
   
protected   MbElement   setProperty(MbElement elem, String name, byte[] value)
   throws   MbException
{
   MbElement   attribute = getcreateLastChild(elem, name, MbElement.TYPE_NAME_VALUE);
   attribute.setValue(value);
   return   attribute;
}
   
protected   MbElement   setProperty(MbElement elem, String name, String value)
   throws   MbException
{
   MbElement   attribute = getcreateLastChild(elem, name, MbElement.TYPE_NAME_VALUE);
   attribute.setValue(value);
   return   attribute;
}
   
protected   MbElement   setProperty(MbElement elem, String name, int value)
   throws   MbException
{
   MbElement   attribute = getcreateLastChild(elem, name, MbElement.TYPE_NAME_VALUE);
   attribute.setValue(new Integer(value));
   return   attribute;
}


I dumped the generated message tree (structure and values) and it looks exactly like the tree my custom node receives if the input message includes an RFH2 header.

-- Any ideas?

Thanks and
_________________
Best Regards,

Thomas Tieke
Senior Consultant

Mummert Consulting AG
Back to top
View user's profile Send private message
Donald MacFarlane
PostPosted: Wed Aug 04, 2004 2:57 am    Post subject: RFH2 header and jplugin Reply with quote

Newbie

Joined: 04 Aug 2004
Posts: 5
Location: Scotland

Have you managed to fix this as I'm getting the same error and can't find out what is wrong with it. Have tried loads of things but am just about at the end of my tether.

Cheers Donald
Back to top
View user's profile Send private message Send e-mail
ThomasTieke
PostPosted: Wed Aug 04, 2004 3:46 am    Post subject: RFH2 header and jplugin Reply with quote

Newbie

Joined: 25 Sep 2003
Posts: 2
Location: Germany, Frankfurt am Main

Hello Donald

Yes, I managed to get this running.
Maybe this code snippets will help you:

Code:

MbElement elemOut = elemOutRoot.getFirstElementByPath("/MQMD/Format");
elemOut.setValue("MQHRF2  "); // Note: not MQRFH2

MbElement rfh2 = elemOutRoot.getFirstElementByPath("/MQMD");
rfh2 = rfh2.createElementAfter("MQHRF2");   

// set version = 2 and so on



If you have a java plugin INPUT node, you'll probably have to add an ESQL node that fills all the mandatory MQMD fields like CorrelationID and so on.

Regards
Thomas Tieke
Back to top
View user's profile Send private message
Donald MacFarlane
PostPosted: Wed Aug 04, 2004 5:19 am    Post subject: RFH2 header and jplugin Reply with quote

Newbie

Joined: 04 Aug 2004
Posts: 5
Location: Scotland

Thanks for the info. I didn't know about being able to create other types of element so had just as MbElement.TYPE_NAME. Changing this to MQHRF2
has made all the difference. Would have been good if this had been documented somewhere


Thanks again

Donald
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » JPLUGIN creating RFH2 header?
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.