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 » Invalid Parser Seq Error from PCF Command

Post new topic  Reply to topic Goto page Previous  1, 2, 3, 4, 5  Next
 Invalid Parser Seq Error from PCF Command « View previous topic :: View next topic » 
Author Message
wschutz
PostPosted: Thu Jul 21, 2005 12:03 pm    Post subject: Reply with quote

Jedi Knight

Joined: 02 Jun 2005
Posts: 3316
Location: IBM (retired)

Interesting, because on my system this works:
Code:
SET refRequest.Parameter[3] = MQIA_INHIBIT_GET;
SET refRequest.Parameter[3].* = 1;

This even works
Code:
SET refRequest.Parameter[3] = MQIA_INHIBIT_GET;
SET refRequest.Parameter[3].* = cast(InputRoot.XML.PCF.GET as integer);

Where InputRoot.XML.PCF.GET had a value of '1'.
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
nina
PostPosted: Tue Sep 13, 2005 2:14 pm    Post subject: Reply with quote

Novice

Joined: 13 Sep 2005
Posts: 11

Hi Wayne,

I tried it, but nothing is changing on TEST queue, and message is going to output Queue. I checked the logs, everything seems fine.

Here is the esql:

==================
CALL CopyMessageHeaders();

SET OutputRoot.MQMD.MsgType = MQMT_REQUEST;
SET OutputRoot.MQMD.Format = MQFMT_ADMIN;
SET OutputRoot.MQMD.ReplyToQ = 'RAJ_BAK';
-- SET OutputRoot.MQMD.MsgSeqNumber = 1;

CREATE FIELD OutputRoot.MQPCF;
DECLARE refRequest REFERENCE TO OutputRoot.MQPCF;
SET refRequest.Type = MQCFT_COMMAND;
-- SET refRequest.StrucLength = MQCFH_STRUC_LENGTH;
-- SET refRequest.Version = MQCFH_CURRENT_VERSION;
SET refRequest.Command = MQCMD_CHANGE_Q;
-- SET refRequest.MsgSeqNumber = 1;
-- SET refRequest.Control = MQCFC_LAST;
-- SET refRequest.ParameterCount = 3;

SET refRequest.Parameter[1] = MQCA_Q_NAME;
SET refRequest.Parameter[1].* = 'TEST';

SET refRequest.Parameter[2] = MQIA_Q_TYPE;
SET refRequest.Parameter[2].* = MQQT_LOCAL;

SET refRequest.Parameter[3] = MQCA_Q_DESC;
SET refRequest.Parameter[3].* = 'The new description';

set OutputRoot.BLOB.BLOB = asbitstream(OutputRoot.MQPCF);
set OutputRoot.MQPCF = null;
SET OutputRoot.MQMD.Format = MQFMT_ADMIN;

================================

trace:

===========================
(
(0x01000000):Properties = (
(0x03000000):MessageSet = ''
(0x03000000):MessageType = ''
(0x03000000):MessageFormat = ''
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 819
(0x03000000):Transactional = TRUE
(0x03000000):Persistence = FALSE
(0x03000000):CreationTime = GMTTIMESTAMP '2005-09-13 21:50:29.070'
(0x03000000):ExpirationTime = -1
(0x03000000):Priority = 0
(0x03000000):ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x03000000):ReplyProtocol = 'MQ'
(0x03000000):Topic = NULL
)
(0x01000000):MQMD = (
(0x03000000):SourceQueue = 'RAJ_IN'
(0x03000000):Transactional = TRUE
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 819
(0x03000000):Format = 'MQADMIN '
(0x03000000):Version = 2
(0x03000000):Report = 0
(0x03000000):MsgType = 1
(0x03000000):Expiry = -1
(0x03000000):Feedback = 0
(0x03000000):Priority = 0
(0x03000000):Persistence = 0
(0x03000000):MsgId = X'414d512052414a514d2020202020202069ff264320001a2a'
(0x03000000):CorrelId = X'000000000000000000000000000000000000000000000000'
(0x03000000):BackoutCount = 0
(0x03000000):ReplyToQ = 'RAJ_BAK'
(0x03000000):ReplyToQMgr = 'RAJQM '
(0x03000000):UserIdentifier = 'mquid'
(0x03000000):AccountingToken = X'0000000000000000000000000000000000000000000000000000000000000000'
(0x03000000):ApplIdentityData = ' '
(0x03000000):PutApplType = 11
(0x03000000):PutApplName = '\j2sdk1.4.2_07\bin\javaw.exe'
(0x03000000):PutDate = DATE '2005-09-13'
(0x03000000):PutTime = GMTTIME '21:50:29.070'
(0x03000000):ApplOriginData = ' '
(0x03000000):GroupId = X'000000000000000000000000000000000000000000000000'
(0x03000000):MsgSeqNumber = 1
(0x03000000):Offset = 0
(0x03000000):MsgFlags = 0
(0x03000000):OriginalLength = -1
)
(0x01000000):BLOB = (
(0x03000000):BLOB = X'0100000024000000010000000800000001000000010000000000000000000000030000000400000018000000e0070000b50100000400000054455354030000001000000014000000010000000400000028000000dd070000b501000013000000546865206e6577206465736372697074696f6e00'
)
)

===================

Could you please help me.

thanks in advance.
Back to top
View user's profile Send private message
wschutz
PostPosted: Tue Sep 13, 2005 3:32 pm    Post subject: Reply with quote

Jedi Knight

Joined: 02 Jun 2005
Posts: 3316
Location: IBM (retired)

Which queue are you sending this PCF message to (SYSTEM.ADMIN.COMMAND.QUEUE is the right answer)? Did you check to see if there's anytinhg in the dead letter queue? Is the command server running?
_________________
-wayne
Back to top
View user's profile Send private message Send e-mail AIM Address
nina
PostPosted: Tue Sep 13, 2005 6:02 pm    Post subject: Reply with quote

Novice

Joined: 13 Sep 2005
Posts: 11

Hi Wayne,

I have a message flow, which has MQInput -->Compute-->MQOutPut nodes.

Here is the ESQL Code in compute node:

================================

CALL CopyMessageHeaders();
/* PCF header is following the MQMD header. */
--SET OutputRoot.MQMD.Encoding = 546; -- need remember 273 is unix
SET OutputRoot.Properties.Encoding = 546;

SET OutputRoot.MQMD.MsgType = MQMT_REQUEST;
SET OutputRoot.MQMD.Format = MQFMT_ADMIN;
SET OutputRoot.MQMD.ReplyToQ = 'RAJ_BAK';
SET OutputRoot.MQMD.MsgSeqNumber = 1;

/* Command is 'Change Queue: Inhibit GET from queue'. */
CREATE FIELD OutputRoot.MQPCF;
DECLARE refRequest REFERENCE TO OutputRoot.MQPCF;
SET refRequest.Type = MQCFT_COMMAND;
SET refRequest.StrucLength = MQCFH_STRUC_LENGTH;
SET refRequest.Version = MQCFH_CURRENT_VERSION;
SET refRequest.Command = MQCMD_CHANGE_Q;
SET refRequest.MsgSeqNumber = 1;
SET refRequest.Control = MQCFC_LAST;


/* First parameter: Queue Name. */
SET refRequest.Parameter[1] = MQCA_Q_NAME;
SET refRequest.Parameter[1].* ='TEST';


/* Second parameter: Queue Type. */
SET refRequest.Parameter[2] = MQIA_Q_TYPE;
SET refRequest.Parameter[2].* = MQQT_LOCAL;

/* Third parameter: Allow/Inhibit GET.*/
--SET refRequest.Parameter[3] = MQIA_INHIBIT_GET;
--SET refRequest.Parameter[3].* = MQQA_GET_INHIBITED;

SET refRequest.Parameter[3] = MQCA_Q_DESC;
SET refRequest.Parameter[3].* = 'The new description';

set OutputRoot.BLOB.BLOB = asbitstream(OutputRoot.MQPCF);
set OutputRoot.MQPCF = null;
--set OutputRoot.MQRFH2 = null;
SET OutputRoot.MQMD.Format = MQFMT_ADMIN;


================================

trace before MQOutput is:

================================

(
(0x01000000):Properties = (
(0x03000000):MessageSet = ''
(0x03000000):MessageType = ''
(0x03000000):MessageFormat = ''
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 437
(0x03000000):Transactional = TRUE
(0x03000000):Persistence = FALSE
(0x03000000):CreationTime = GMTTIMESTAMP '2005-09-14 01:50:27.260'
(0x03000000):ExpirationTime = -1
(0x03000000):Priority = 0
(0x03000000):ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x03000000):ReplyProtocol = 'MQ'
(0x03000000):Topic = NULL
)
(0x01000000):MQMD = (
(0x03000000):SourceQueue = 'RAJ_IN'
(0x03000000):Transactional = TRUE
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 437
(0x03000000):Format = 'MQADMIN '
(0x03000000):Version = 2
(0x03000000):Report = 0
(0x03000000):MsgType = 1
(0x03000000):Expiry = -1
(0x03000000):Feedback = 0
(0x03000000):Priority = 0
(0x03000000):Persistence = 0
(0x03000000):MsgId = X'414d5120434f4e46494742524b5f514d1a7b274320000f01'
(0x03000000):CorrelId = X'000000000000000000000000000000000000000000000000'
(0x03000000):BackoutCount = 0
(0x03000000):ReplyToQ = 'RAJ_BAK'
(0x03000000):ReplyToQMgr = 'CONFIGBRK_QM '
(0x03000000):UserIdentifier = 'ninaraj '
(0x03000000):AccountingToken = X'1601051500000052aac86832621f2a43170a32eb03000000000000000000000b'
(0x03000000):ApplIdentityData = ' '
(0x03000000):PutApplType = 11
(0x03000000):PutApplName = 'WebSphere MQ\bin\amqsput.exe'
(0x03000000):PutDate = DATE '2005-09-14'
(0x03000000):PutTime = GMTTIME '01:50:27.260'
(0x03000000):ApplOriginData = ' '
(0x03000000):GroupId = X'000000000000000000000000000000000000000000000000'
(0x03000000):MsgSeqNumber = 1
(0x03000000):Offset = 0
(0x03000000):MsgFlags = 0
(0x03000000):OriginalLength = -1
)
(0x01000000):BLOB = (
(0x03000000):BLOB = X'0100000024000000010000000800000001000000010000000000000000000000030000000400000018000000e0070000b50100000400000054455354030000001000000014000000010000000400000028000000dd070000b501000013000000546865206e6577206465736372697074696f6e00'
)
)
================================

Message on Output Q:

=================================

C:\>amqsbcg RAJ_OUT CONFIGBRK_QM

AMQSBCG0 - starts here
**********************

MQOPEN - 'RAJ_OUT'


MQGET of message number 1
****Message descriptor****

StrucId : 'MD ' Version : 2
Report : 0 MsgType : 1
Expiry : -1 Feedback : 0
Encoding : 546 CodedCharSetId : 437
Format : 'MQADMIN '
Priority : 0 Persistence : 0
MsgId : X'414D5120434F4E46494742524B5F514D1A7B274320000A08'
CorrelId : X'000000000000000000000000000000000000000000000000'
BackoutCount : 0
ReplyToQ : 'RAJ_BAK '
ReplyToQMgr : 'CONFIGBRK_QM '
** Identity Context
UserIdentifier : 'ninaraj '
AccountingToken :
X'1601051500000052AAC86832621F2A43170A32EB03000000000000000000000B'
ApplIdentityData : ' '
** Origin Context
PutApplType : '11'
PutApplName : 'WebSphere MQ\bin\amqsput.exe'
PutDate : '20050914' PutTime : '01495341'
ApplOriginData : ' '

GroupId : X'000000000000000000000000000000000000000000000000'
MsgSeqNumber : '1'
Offset : '0'
MsgFlags : '0'
OriginalLength : '-1'

**** Message ****

length - 116 bytes

00000000: 0100 0000 2400 0000 0100 0000 0800 0000 '....$...........'
00000010: 0100 0000 0100 0000 0000 0000 0000 0000 '................'
00000020: 0300 0000 0400 0000 1800 0000 E007 0000 '............α...'
00000030: B501 0000 0400 0000 5445 5354 0300 0000 '╡.......TEST....'
00000040: 1000 0000 1400 0000 0100 0000 0400 0000 '................'
00000050: 2800 0000 DD07 0000 B501 0000 1300 0000 '(...▌...╡.......'
00000060: 5468 6520 6E65 7720 6465 7363 7269 7074 'The new descript'
00000070: 696F 6E00 'ion. '

=================================



Checked the DeadletterQ, no messages.

Stopped the command server before putting message, and OPPROCS of SYSTEM.ADMIN.COMMAND.QUEUE is zero.

I put the message on InputQ and it reached to OutputQ.

But QDEPTH for SYSTEM.ADMIN.COMMAND.QUEUE is zero.

PCF message is not being generated.

Do we need to configure SYSTEM.ADMIN.COMMAND.QUEUE anywhere in the message flow?

Could you please help me.

Thanks,
Nina
Back to top
View user's profile Send private message
JT
PostPosted: Tue Sep 13, 2005 6:29 pm    Post subject: Reply with quote

Padawan

Joined: 27 Mar 2003
Posts: 1564
Location: Hartford, CT.

Quote:
Do we need to configure SYSTEM.ADMIN.COMMAND.QUEUE anywhere in the message flow?

How do you expect MQ to act upon your PCF message if it's sitting in a queue (RAJ_OUT) that's not being monitored ?

You didn't set the DestinationList in your ESQL code, so you apparently defined the output queue in the MQOutput node. The problem is you specified RAJ_OUT instead of SYSTEM.ADMIN.COMMAND.QUEUE.
Back to top
View user's profile Send private message
nina
PostPosted: Tue Sep 13, 2005 7:28 pm    Post subject: Reply with quote

Novice

Joined: 13 Sep 2005
Posts: 11

Hi JT, and Wayne,

now its working.

Thanks for your help.

Regards,
Nina
Back to top
View user's profile Send private message
nina
PostPosted: Wed Sep 14, 2005 1:22 pm    Post subject: Reply with quote

Novice

Joined: 13 Sep 2005
Posts: 11

Hi All,

Queue Inhibit is working fine for one message. If I have 10 messages on Input Queue, all are processing and trying to inhibit the InputQueue everytime. Also noticed 10 reply messages on ReplyQ.

Only one message has to be processed, and remaining 9 messages should be on InputQ only, as MQGet is inhibited.

But my message flow is not behaving as expected.

Please help me.

Thanks in advance.

Regards,
Nina
Back to top
View user's profile Send private message
AndyT
PostPosted: Wed Mar 07, 2007 8:38 am    Post subject: Reply with quote

Novice

Joined: 05 Nov 2003
Posts: 17
Location: Work

I am working with PCF messages and have everything working fine. But I do not understand how the ESQL that is setting the 3 parameters is working.

Can anybody enlighten me or direct me to the documentation that explains how this is works?

Code:
SET refRequest.Parameter[1] = MQCA_Q_NAME;
SET refRequest.Parameter[1].* = 'TEST';
Back to top
View user's profile Send private message
Vitor
PostPosted: Wed Mar 07, 2007 8:41 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

ESQL Reference manual.

Look up "Anonymous message fields" as a starting point.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
JosephGramig
PostPosted: Mon Feb 18, 2008 7:22 am    Post subject: Doesn't work for me... Reply with quote

Grand Master

Joined: 09 Feb 2006
Posts: 1244
Location: Gold Coast of Florida, USA

Well heck!

I can't get this to work with WMB 6.1 and I never tried it in the other versions. Has anybody else got this working in 6.1?

My message goes to the DLQ with a RC of 65536.

Here is my code:
Code:
      /*****************************
      * Assembles PCF command to inhibit GET's from a queue.
      *
      */
      CALL CopyMessageHeaders();
      /* PCF header is following the MQMD header. */
      --SET OutputRoot.MQMD.Encoding = 546; -- need remember 273 is unix
      SET OutputRoot.Properties.Encoding = 546;

      SET OutputRoot.MQMD.MsgType = MQMT_REQUEST;
      SET OutputRoot.MQMD.Format = MQFMT_ADMIN;
      SET OutputRoot.MQMD.ReplyToQ = 'TEST.OUT';
      SET OutputRoot.MQMD.MsgSeqNumber = 1;

      /* Command is 'Change Queue: Inhibit GET from queue'. */
      CREATE FIELD OutputRoot.MQPCF;
      DECLARE refRequest REFERENCE TO OutputRoot.MQPCF;
      SET refRequest.Type = MQCFT_COMMAND;
      SET refRequest.StrucLength = MQCFH_STRUC_LENGTH;
      SET refRequest.Version = MQCFH_CURRENT_VERSION;
      SET refRequest.Command = MQCMD_CHANGE_Q;
      SET refRequest.MsgSeqNumber = 1;
      SET refRequest.Control = MQCFC_LAST;


      /* First parameter: Queue Name. */
      SET refRequest.Parameter[1] = MQCA_Q_NAME;
      SET refRequest.Parameter[1].* ='TEST.IN';


      /* Second parameter: Queue Type. */
      SET refRequest.Parameter[2] = MQIA_Q_TYPE;
      SET refRequest.Parameter[2].* = MQQT_LOCAL;

      /* Third parameter: Allow/Inhibit GET.*/
      SET refRequest.Parameter[3] = MQIA_INHIBIT_GET;
      SET refRequest.Parameter[3].* = MQQA_GET_INHIBITED;
--      SET refRequest.Parameter[3] = MQCA_Q_DESC;
--      SET refRequest.Parameter[3].* = 'Joseph was here';

      set OutputRoot.BLOB.BLOB = asbitstream(OutputRoot.MQPCF);
      set OutputRoot.MQPCF = null;
      set OutputRoot.MQRFH2 = null;
      SET OutputRoot.MQMD.Format = MQFMT_ADMIN;
      RETURN TRUE;

_________________
Joseph
Administrator - IBM WebSphere MQ (WMQ) V6.0, IBM WebSphere Message Broker (WMB) V6.1 & V6.0
Solution Designer - WMQ V6.0
Solution Developer - WMB V6.1 & V6.0, WMQ V5.3
Back to top
View user's profile Send private message AIM Address
jefflowrey
PostPosted: Mon Feb 18, 2008 7:28 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

I've been playing with this a bit, and the flow input message goes onto the DLQ with an App error.

The broker reports an error trying to serialize the PCF message using the PCF parser, because of a complaint about a Type being set on a Parameter, where it's only valid Type on a Command.

Or something like - I'm not on the machine that has the error message.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Mon Feb 18, 2008 3:41 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

I see you all playing with PCF in ESQL.
I would have thought the natural progression would have been to use a JCN, use MS0B to create the message, read the bytes out of the message and pass them as BLOB to the assembly.... (or use direct connection from MS0B)...

Enjoy
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
jefflowrey
PostPosted: Mon Feb 18, 2008 4:04 pm    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

fjb_saper wrote:
I would have thought the natural progression would have been to use a JCN


Only if there is otherwise Java skills in house, and otherwise Java in the flow. This isn't a task that requires the use of a JCN - unless there's a bug in the v6.1 PCF parser... - so there's no compelling reason to use it.


_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
JosephGramig
PostPosted: Wed Feb 20, 2008 3:03 pm    Post subject: Reply with quote

Grand Master

Joined: 09 Feb 2006
Posts: 1244
Location: Gold Coast of Florida, USA

Yep, just tried my code in WMB 6.0.0.3 and it worked...

This is a version difference.
Back to top
View user's profile Send private message AIM Address
sunny_30
PostPosted: Sun Feb 24, 2008 5:15 pm    Post subject: Reply with quote

Master

Joined: 03 Oct 2005
Posts: 258

Joseph,
What is the platform you tried this code using WMB-6.1?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page Previous  1, 2, 3, 4, 5  Next Page 4 of 5

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Invalid Parser Seq Error from PCF Command
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.