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 » mqrc 3015

Post new topic  Reply to topic Goto page 1, 2  Next
 mqrc 3015 « View previous topic :: View next topic » 
Author Message
sebastia
PostPosted: Thu Feb 13, 2014 4:11 am    Post subject: mqrc 3015 Reply with quote

Grand Master

Joined: 07 Oct 2004
Posts: 1003

Hi, I am trying to set a queue parameter using PCF under JMS.

Code:
agent = new PCFMessageAgent ( "localhost", 2415, "MY.SVRCONN" ) ;
System.out.println ( "+++ Connected" ) ;

// Build the request
             
(1) request = new PCFMessage ( MQConstants.MQCMD_CHANGE_Q ) ;
(2) request.addParameter ( MQConstants.MQCA_Q_NAME, "QL.IN" ) ;
(3) request.addParameter ( MQConstants.MQIA_Q_TYPE, MQConstants.MQQT_LOCAL ) ;
          
(4) request.addParameter ( MQConstants.MQIA_INHIBIT_GET, MQConstants.MQQA_GET_INHIBITED ) ; // set GET(DISABLED)
(5) request.addParameter ( MQConstants.MQIA_CLWL_Q_PRIORITY, 3 ) ;              // set priority
// request.addParameter ( MQConstants.MQCA_Q_DESC, "New Descr" ) ;             // set description


If I have only (1) and (2), I get rc=3019, ok

With (1) + (2) + (3), I get rc=3015, STRING Parameter Error
What String is wrong ???

(1)+(2)+(4) = 3014 = INTEGER parameter error
(1)+(2)+(5) = 3014 = INTEGER parameter error
(1)+(2)+(6) = 3015 = STRING parameter error

What tools shall I use to read the parameters received to determine why they are invalid ?

A MQ Trace ?

===

Parameters must be :

http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=%2Fcom.ibm.mq.csqzac.doc%2Fpc11160_.htm

// required :
// QNAME (MQCFST)
// QTYPE (MQCFIN) := MQTT_LOCAL ;

So, what STRING is not valid ? The queue name ??
Back to top
View user's profile Send private message Visit poster's website
fjb_saper
PostPosted: Thu Feb 13, 2014 5:31 am    Post subject: Reply with quote

Grand High Poobah

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

PCF does not really work well under JMS. It follows a kind of stand alone / java pojo model.

Can you please elaborate what you are doing with the request when trying to send it?

Have fun
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
mqjeff
PostPosted: Thu Feb 13, 2014 6:21 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

fjb_saper wrote:
PCF does not really work well under JMS. It follows a kind of stand alone / java pojo model.

Can you please elaborate what you are doing with the request when trying to send it?

Have fun


There doesn't appear to be any JMS used at all.

The PCFMessageAgent handles all of the connections, and handles the sending and receiving of messages.

The only string that could be wrong in the combo of 1,2,3 is the queue name. It's the only string there is...

An MQ client trace should probably show you the message data you're building, or you can look at just writing the message directly to a queue (other than the Command Server queue).
Back to top
View user's profile Send private message
sebastia
PostPosted: Thu Feb 13, 2014 8:00 am    Post subject: Reply with quote

Grand Master

Joined: 07 Oct 2004
Posts: 1003

What I am trying to do is to change (MQCMD_CHANGE_Q) any parameter of the queue, as

*) PUT(DISABLED/ENABLED)
*) CLWLPRTY(0 lowest .. 9 highest)
*) Description(text)

I have PCF samples from

1) MQ - \\MQ\tools\pcf\samples
2) MS0B - º\ms0b\com.ibm.mq.pcf

Right now the PCF is running in an Eclipse environment
(import com.ibm.mq.pcf.* ,
but it shall end up in a MB flow Java node.

The connection is done using a SVRCONN channel.

I agree in (1)+(2)+(3) there is only one string, this is, the queue name.

I have changed the string literal to "QLIN" and now get mqrc 2085, object does not exist, which is fine. Maybe the dot (".") was the problem. Now I create a queue "QLIN" and get mqrc 3015 again.

Lets run a MQ trace ...
Tx. Sebastian.
Back to top
View user's profile Send private message Visit poster's website
fjb_saper
PostPosted: Thu Feb 13, 2014 11:47 am    Post subject: Reply with quote

Grand High Poobah

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

If you think the "." was a problem have you tried escaping it?
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
sebastia
PostPosted: Fri Feb 14, 2014 12:43 am    Post subject: Reply with quote

Grand Master

Joined: 07 Oct 2004
Posts: 1003

Hi -> tgif, uf

1) I dont know how to escape the dot, sorry, but ...

2) I tried using QLIN as queue name and got 3015 again (already written in my previous post).

As T Rob says in

>>> http://stackoverflow.com/questions/4688919/error-creating-queue-with-websphere-mq-api

... the order of the sentences is important when using PCF.

So, I think there is a sentence missing before providing the queue name ... I am just guessing. I am using AMQSCLMA.C as source, and dont see it.

Thanks. Sebastian.
Back to top
View user's profile Send private message Visit poster's website
sebastia
PostPosted: Fri Feb 14, 2014 12:51 am    Post subject: Reply with quote

Grand Master

Joined: 07 Oct 2004
Posts: 1003

AMQSCLMA.C resum :

Code:
.
                  PCFMsgLen = buildChangeQPCF(pAdminMsg,
                                              AdminMsgLen,
                                              DefnLQ.QName,
                                              TargetCLWLPRTY,
                                              TargetCLWLUSEQ);
.
  pPCFHeader->Command        = MQCMD_CHANGE_Q; /* "Change Queue" */
 
  pPCFString->Parameter      = MQCA_Q_NAME;
  strncpy( pPCFString->String, QName, MQ_Q_NAME_LENGTH); /* Specify queue */
 
  pPCFInteger->Parameter     = MQIA_Q_TYPE ;
  pPCFInteger->Value         = MQQT_LOCAL;
 
  pPCFInteger->Parameter     = MQIA_CLWL_Q_PRIORITY;
  pPCFInteger->Value         = TargetCLWLPRTY;
 
  pPCFInteger->Parameter     = MQIA_CLWL_USEQ;
  pPCFInteger->Value         = TargetCLWLUSEQ;
 


So I am still in darkness ..
Back to top
View user's profile Send private message Visit poster's website
sebastia
PostPosted: Fri Feb 14, 2014 3:41 am    Post subject: Reply with quote

Grand Master

Joined: 07 Oct 2004
Posts: 1003

Hi again. I did run MQ trace.
In 3 seconds, I got
Code:
14-02-14  12:39            23.890 AMQ3292.0.TRC
14-02-14  12:39         1.175.213 AMQ3340.0.TRC
14-02-14  12:39                 0 AMQ3344.0.TRC
14-02-14  12:39                 0 AMQ3388.0.TRC
14-02-14  12:39            62.490 AMQ3516.0.TRC
14-02-14  12:39                 0 AMQ3812.0.TRC
14-02-14  12:39           126.697 AMQ3836.0.TRC
14-02-14  12:39            16.596 AMQ3844.0.TRC
14-02-14  12:39                 0 AMQ3892.0.TRC
14-02-14  12:39                 0 AMQ3924.0.TRC
14-02-14  12:39                 0 AMQ5500.0.TRC
14-02-14  12:39            21.315 AMQ5696.0.TRC
14-02-14  12:39                 0 AMQ5712.0.TRC
14-02-14  12:39            56.496 AMQ5780.0.TRC
14-02-14  12:39            22.453 AMQ6228.0.TRC
14-02-14  12:39                 0 AMQ6320.0.TRC
14-02-14  12:39             5.486 AMQ6344.0.TRC
14-02-14  12:39            78.774 AMQ6532.0.TRC
14-02-14  12:39         1.702.074 AMQ6876.0.TRC
14-02-14  12:39            59.026 AMQ7576.0.TRC
14-02-14  12:39                 0 AMQ7752.0.TRC
14-02-14  12:39                 0 AMQ7884.0.TRC
14-02-14  12:39                 0 AMQ7944.0.TRC
14-02-14  12:39             5.916 AMQ8048.0.TRC
14-02-14  12:39                 0 AMQ8152.0.TRC
              25 File(s)      3.356.426 bytes


Of course I will try ro read it as simple text .... but maybe my clever coleagues have a better way to read a MQ trace ...

Is there any tool analyzing the 25 files at once and resuming the errors it finds ?

Sebastian.
Back to top
View user's profile Send private message Visit poster's website
smdavies99
PostPosted: Fri Feb 14, 2014 4:00 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

PCF stuff is a PITA to get right.

In the past I try it out outside of broker until I:-
1) Get the sending message right
2) Am able to get a non error reply.

Then I set some very unique values in the data I need to retrieve using PCF. Then I can analyze it by looking at the data on the specified reply queue.
When that is correct, I can then get broker to send the correctly formatted request and because I have a sample reply message I can code and test the code that handles it.

So for a Queue Depth problem I'd put a load of messages on the queue, say 1077 (Or a hex data pattern that is easy to find in a message dump).

When it seems to work, read a message and see if you get back the updated QD value.
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
sebastia
PostPosted: Fri Feb 14, 2014 6:33 am    Post subject: Reply with quote

Grand Master

Joined: 07 Oct 2004
Posts: 1003

In fact, I did try to find "3015" in *.TRC and failed.

Then, I remembered few months ago I discovered those traces had the RC's in HEX, so I searched for 0xBC7, with no success.

Need more clues.
Or a weekend to rest.
Enjoy.
Sebastian.
Back to top
View user's profile Send private message Visit poster's website
Michael Dag
PostPosted: Fri Feb 14, 2014 7:10 am    Post subject: Reply with quote

Jedi Knight

Joined: 13 Jun 2002
Posts: 2607
Location: The Netherlands (Amsterdam)

did you look at the java pcf samples provided with the product in \tools\pcf ? I saw you were using the C sample...
_________________
Michael



MQSystems Facebook page
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
mqjeff
PostPosted: Fri Feb 14, 2014 7:14 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Michael Dag wrote:
did you look at the java pcf samples provided with the product in \tools\pcf ? I saw you were using the C sample...


tools\pcf is all Java as of mq7.1.
Back to top
View user's profile Send private message
sebastia
PostPosted: Fri Feb 14, 2014 7:18 am    Post subject: Reply with quote

Grand Master

Joined: 07 Oct 2004
Posts: 1003

Hi, Michael and Jeff.
Yes, I've been thru PCF samples, but they are "inquiry" only. There is no one to "change" the queue values :
Code:
 Directory of c:\MQ\tools\pcf\samples

   5.979 PCF_ChannelStatus.java
  11.363 PCF_ClearQueue.java
  10.891 PCF_CommonMethods.java
    6.112 PCF_CreateChannel.java
    5.904 PCF_CreateQueue.java
    4.612 PCF_DeleteChannel.java
    4.415 PCF_DeleteQueue.java
    9.705 PCF_DisplayActiveLocalChannels.java
    7.730 PCF_DisplayActiveLocalQueues.java
  16.640 PCF_DisplayConnections.java
    7.568 PCF_ListQueueNames.java
    4.524 PCF_StartChannel.java
    4.515 PCF_StopChannel.java
    9.076 PCF_WalkThroughQueueManagerAttributes.java


No "MQCMD_CHANGE_Q" in any *.java ...

The most "similar" is PCF_CreateQueue.java :

Code:
pcfCM.CreateAgent(args.length);
int queueType = MQConstants.MQQT_LOCAL;

// Create the PCF message type for the create queue.
// NB: The parameters must be added in a specific order or an exception (3015) will be thrown <<< interesting comment !

PCFMessage pcfCmd = new PCFMessage(MQConstants.MQCMD_CREATE_Q);

// Queue name - Mandatory.
pcfCmd.addParameter(MQConstants.MQCA_Q_NAME, PCF_CommonMethods.pcfQueue);

// Queue Type - Optional.
pcfCmd.addParameter(MQConstants.MQIA_Q_TYPE, queueType);

// Add description.
pcfCmd.addParameter(MQConstants.MQCA_Q_DESC, "MyQueue");


Shall play with it this weekend ...

Sebastian.
Back to top
View user's profile Send private message Visit poster's website
Michael Dag
PostPosted: Fri Feb 14, 2014 7:49 am    Post subject: Reply with quote

Jedi Knight

Joined: 13 Jun 2002
Posts: 2607
Location: The Netherlands (Amsterdam)

yes, saw that 3015 order comment too...

my java skills are very low... so I try on error too... here

found this too using google... don't know if it will give you some more clues...

http://message-fixture.googlecode.com/svn-history/r10/trunk/src/main/java/com/googlecode/messagefixture/mq/util/PcfUtil.java
_________________
Michael



MQSystems Facebook page
Back to top
View user's profile Send private message Visit poster's website MSN Messenger
sebastia
PostPosted: Fri Feb 14, 2014 10:55 am    Post subject: Reply with quote

Grand Master

Joined: 07 Oct 2004
Posts: 1003

Yes, this one does it (CHANGE_Q) :

Code:
MQMessage[] pcfResponses = agent.send(CMQCFC.MQCMD_CHANGE_Q, parameters);


Obviously you are better with Google than me, or have more patience !

Thanks, Michael. I'll try it this weekend.
Should you be thirsty and around Plaza Real, you got my number ()
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » mqrc 3015
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.