Author |
Message
|
ccy |
Posted: Thu Oct 21, 2010 5:10 pm Post subject: Connecting to MQQueueManager got error 2298 |
|
|
Newbie
Joined: 21 Oct 2010 Posts: 7
|
I am quite new to MQ Series. Recently we upgraded our server to Win2k8 where MQ Client 7 installed. Client side connects to MQ server (v5) on mainframe.
I have windows service to call MQ Client. Everytime I connect to queue Manager using new MQQueueManager(string queueManagerName), I got error: MQRC_FUNCTION_NOT_SUPPORTED, 2298. But my program's logic is if I encounter error I will try again. Then it is weird that the second time it went through and never got any error anymore.
But if I stop my windows service and start it again, the first time I connet to queue manager I will have the same error again, then error would disappear after second time try.
Does anyone know what happened? Thank you. |
|
Back to top |
|
 |
exerk |
Posted: Thu Oct 21, 2010 10:16 pm Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
What FixPack level are you on, and in what language is the client application written?
Review the application code and see which calls are being made. It may be that whatever your application does the first time it tries to connect, it doesn't do the second time. If there is nothing obvious, switch on trace for the duration of the fail/success, and see what is printed within the trace files. _________________ It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys. |
|
Back to top |
|
 |
ccy |
Posted: Thu Oct 21, 2010 10:56 pm Post subject: |
|
|
Newbie
Joined: 21 Oct 2010 Posts: 7
|
Sorry I really can't answer your first question as the MQ Client was installed by our network support team. I am using C#. The code to establish connection is like:
------------------------------------------------
string error = "";
try
{
queueManager = new MQQueueManager(queueManagerName);
}
catch (MQException mqexp)
{
error = "function Connect, " + mqexp.Message + ", " + mqexp.Reason + ", " + getMQReasonText(mqexp.Reason);
}
catch (Exception e)
{
error = "function connect, " + e.ToString();
}
return error;
-----------------------------------------------
Every time the client application restarts (eg, after web.config being modified or IIS worker process has been idle for 20 mins and is closed), the very first time to establish connection to queue manager always fails when trying to new a MQQueueManager. But somehow all the subsequent call will be successful. |
|
Back to top |
|
 |
exerk |
Posted: Thu Oct 21, 2010 11:02 pm Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
If you have access to the server open a cmd window and type dspmqver, or ask the Sys Admin's to query the Registry for the information. Switch on trace too, because I think you're going to need the detail to nail this one.
Question: was the 'upgrade' a bare-tin one, or was the new OS blown over the top of the old? _________________ It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys. |
|
Back to top |
|
 |
Vitor |
Posted: Fri Oct 22, 2010 4:25 am Post subject: Re: Connecting to MQQueueManager got error 2298 |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
ccy wrote: |
I am quite new to MQ Series. Recently we upgraded our server to Win2k8 where MQ Client 7 installed. Client side connects to MQ server (v5) on mainframe. |
That's a long way back level. There are a lot of changes in the v7 client (v5 & v6 clients didn't change much) and this could be causing issues.
If your WMQ server was still supported, you could get help from IBM. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
ccy |
Posted: Sat Oct 23, 2010 5:33 am Post subject: |
|
|
Newbie
Joined: 21 Oct 2010 Posts: 7
|
Thanks for reply. I 99% believe the server running MQ Client is a new server with Win2k8 (although it was done by our network support). Initially we still had MQ Client 6 in this server, but I got error "System.BadImageFormatException: An attempt was made to load a program with an incorrect format". That's why we change to MQ Client 7. And amqdnet.dll and amqmdxcs.dll are installed in GAC in the server.
I believe I can do workaround to make the application work but it would be too ugly and I really don't understand why. |
|
Back to top |
|
 |
exerk |
Posted: Sat Oct 23, 2010 7:56 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
Is it a DotNet application? If so, how do you pass it the connection details? And please, what specific level of WMQ V7.0 do you have installed? _________________ It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys. |
|
Back to top |
|
 |
Vitor |
Posted: Sat Oct 23, 2010 11:59 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
ccy wrote: |
I believe I can do workaround to make the application work but it would be too ugly and I really don't understand why. |
I think the problem (or a problem) is the v5 server is too old to have a firm grip on the v7 client's connection attempts. First time it attempts something which the queue manager doesn't understand (function not supported). When you retry, something in the darkness attempts a more basic function and succeeds.
If you're going to run the latest client on something that not only out of support but 2 major levels behind the client, accept that things are going to get ugly & you're going to have to introduce workrounds. It's one of the costs of not upgrading. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
ccy |
Posted: Sun Oct 24, 2010 4:34 am Post subject: |
|
|
Newbie
Joined: 21 Oct 2010 Posts: 7
|
Yes, it is a .net application. It's quite simple:
class MQSeries{
public MQSeries{
MQEnvironment.Hostname = GetConfigValue("Hostname");
MQEnvironment.Port = Convert.ToInt32(GetConfigValue("Port"));
MQEnvironment.Channel = GetConfigValue("Channel");
}
void CallMQSeries(){
string error = connect(); ...
error = openReplyQueue(); ...
error = PutMessageIntoQueue(Message);
....
}
string connect(){
try
{
queueManager = new MQQueueManager(queueManagerName);
}
...
}
Then everytime the very first call to connect() 2298 error. As to what specific level of WMQ 7 have we installed, I will check it tomorrow. Thank you. |
|
Back to top |
|
 |
exerk |
Posted: Sun Oct 24, 2010 8:33 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
So you have completely ham-strung yourself by not using a controllable, and secure, connection method - not good - a CCDT would be better. Does this application run as managed or unmanaged? _________________ It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys. |
|
Back to top |
|
 |
ccy |
Posted: Sun Oct 24, 2010 3:02 pm Post subject: |
|
|
Newbie
Joined: 21 Oct 2010 Posts: 7
|
Our MQ Client version is 7.0.1.0. And the above code is just a skeleton of my program. I eliminated all trace and try-catch stuff. And as I said I am totally new to MQ Series, I agree using CCDT to manage connection would be much better (although this is a project I took over from our architect 2 years ago). But regardless of secure, or controllable problem, if everything is configued properly even the simplest program should work without any issue. |
|
Back to top |
|
 |
PeterPotkay |
Posted: Sun Oct 24, 2010 4:19 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Try upgrading. Tons of fixes in 7.0.1.3.
May not help, can't hurt.
I would not run 7.0.1.0. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
ccy |
Posted: Mon Oct 25, 2010 5:01 pm Post subject: |
|
|
Newbie
Joined: 21 Oct 2010 Posts: 7
|
Issue fixed. First I create a simple console application to only test connection on MQ Client server. And it works perfectly, which means MQ Client 7 doesn't have any problem to connect to queue manager. Then since my application is hosted on IIS, so I would say the issue should be related to IIS. All I did was changing some config in application pool and then change it back. Suddenly it is like a miracle. Everything works fine. |
|
Back to top |
|
 |
exerk |
Posted: Tue Oct 26, 2010 1:50 am Post subject: |
|
|
 Jedi Council
Joined: 02 Nov 2006 Posts: 6339
|
ccy wrote: |
...All I did was changing some config in application pool and then change it back. Suddenly it is like a miracle. Everything works fine. |
Does your application run under an identifiable userid, or Network Services? How do you secure your CLNTCONN/SVRCONN channel pair? _________________ It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys. |
|
Back to top |
|
 |
ccy |
Posted: Sun Oct 31, 2010 2:51 pm Post subject: |
|
|
Newbie
Joined: 21 Oct 2010 Posts: 7
|
No specific userid for this application as it is totally running in internal network. And no particular way to secure clntconn/svrconn. |
|
Back to top |
|
 |
|