Author |
Message
|
Vitor |
Posted: Mon Apr 30, 2007 11:30 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
andy840920 wrote: |
it not failed with 2058 and that 2099 , why ? |
Sorry, assumed the 2099 was a typo for 2009....  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
andy840920 |
Posted: Tue May 01, 2007 5:25 pm Post subject: |
|
|
Apprentice
Joined: 29 Apr 2007 Posts: 44
|
but why i re-connect , re-open MQPUT close and disconnect to the queue in every child process still return 2009 |
|
Back to top |
|
 |
Vitor |
Posted: Tue May 01, 2007 11:37 pm Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
andy840920 wrote: |
but why i re-connect , re-open MQPUT close and disconnect to the queue in every child process still return 2009 |
Because you're still above the limit, as jefflowrey suggested? Or whatever circumstance caused the 2009 has not yet cleared?
It does tend to be a transient error, but some patience is required. For what it's worth, I tend to code 2009 handleing as 10 attempts 3 seconds apart before giving up and throwing an error.
Purely a personal thing, other error strategies are equally valid, etc, etc. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
andy840920 |
Posted: Wed May 02, 2007 1:56 am Post subject: |
|
|
Apprentice
Joined: 29 Apr 2007 Posts: 44
|
Vitor wrote: |
andy840920 wrote: |
but why i re-connect , re-open MQPUT close and disconnect to the queue in every child process still return 2009 |
Because you're still above the limit, as jefflowrey suggested? Or whatever circumstance caused the 2009 has not yet cleared?
It does tend to be a transient error, but some patience is required. For what it's worth, I tend to code 2009 handleing as 10 attempts 3 seconds apart before giving up and throwing an error.
Purely a personal thing, other error strategies are equally valid, etc, etc. |
how to cleaned the 2009 error? but ResonCode is not produced at every MQPUT operation?
you are right. it is a transient error. but MQPUT no block write. if it's return 2009, i must try some times and sleep some seconds? how many times? how many seconds? i want every MQPUT are successful or at least next time. |
|
Back to top |
|
 |
andy840920 |
Posted: Wed May 02, 2007 1:59 am Post subject: |
|
|
Apprentice
Joined: 29 Apr 2007 Posts: 44
|
by the way, how to know the queue can hold how many messages , one message's maximum size and the total size in my circumstance. thanks. |
|
Back to top |
|
 |
Vitor |
Posted: Wed May 02, 2007 2:00 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
andy840920 wrote: |
by the way, how to know the queue can hold how many messages , one message's maximum size and the total size in my circumstance. thanks. |
Display the queue's attributes. Each of the figures is such an attribute, except total size which can be calculated from current depth but may not be the actual size of the queue file (managed internally by the queue manager). _________________ Honesty is the best policy.
Insanity is the best defence.
Last edited by Vitor on Wed May 02, 2007 2:05 am; edited 1 time in total |
|
Back to top |
|
 |
Vitor |
Posted: Wed May 02, 2007 2:03 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
andy840920 wrote: |
i want every MQPUT are successful or at least next time. |
Then you have a number of options:
1) Manage the number of connections & forked processes as jefflowrey suggested to stay under the limit;
2) Increase the maximum number of allowed connections (this will require the assistance of the administrator and has resource implications)
3) Use a bindings connection not a client one as I have indicated _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
andy840920 |
Posted: Wed May 02, 2007 7:37 am Post subject: |
|
|
Apprentice
Joined: 29 Apr 2007 Posts: 44
|
[quote="Vitor"]
andy840920 wrote: |
3) Use a bindings connection not a client one as I have indicated |
how to decide i used binding connection or others? use MQCNO_STANDARD_BINDING connect option? my application use MQCNO_HANDLE_SHARE_BLOCK connect option now. and i think MQCNO_HANDLE_SHARE_BLOCK is much fit my use. the fork circumstance. |
|
Back to top |
|
 |
Vitor |
Posted: Wed May 02, 2007 7:52 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
andy840920 wrote: |
how to decide i used binding connection or others? |
It depends on how your program is linked. If it's been linked with the client libraries it'll establish a client connection, if it's been linked with the sever libraries it'll create a server connection.
You'll find this explained in greater detail (along with suggested command line options) in the Application Programming Guide.
The options you mention are for other uses. Check the Application Programming Reference for full details. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
andy840920 |
Posted: Wed May 09, 2007 4:20 am Post subject: |
|
|
Apprentice
Joined: 29 Apr 2007 Posts: 44
|
Vitor wrote: |
andy840920 wrote: |
how to decide i used binding connection or others? |
It depends on how your program is linked. If it's been linked with the client libraries it'll establish a client connection, if it's been linked with the sever libraries it'll create a server connection.
You'll find this explained in greater detail (along with suggested command line options) in the Application Programming Guide.
The options you mention are for other uses. Check the Application Programming Reference for full details. |
i can't find MAXCHANNELS=n and MAXACTIVECHANNELS=n in my mq.ini
Quote: |
#*******************************************************************#
#* Module Name: qm.ini *#
#* Type : WebSphere MQ queue manager configuration file *#
# Function : Define the configuration of a single queue manager *#
#* *#
#*******************************************************************#
#* Notes : *#
#* 1) This file defines the configuration of the queue manager *#
#* *#
#*******************************************************************#
ExitPath:
ExitsDefaultPath=/var/mqm/exits/
ExitsDefaultPath64=/var/mqm/exits64/
#* *#
#* *#
Log:
LogPrimaryFiles=3
LogSecondaryFiles=2
LogFilePages=1024
LogType=CIRCULAR
LogBufferPages=0
LogPath=/var/mqm/log/CIS/
LogWriteIntegrity=TripleWrite
Service:
Name=AuthorizationService
EntryPoints=13
ServiceComponent:
Service=AuthorizationService
Name=MQSeries.UNIX.auth.service
Module=/opt/mqm/lib/amqzfu
ComponentDataSize=0
===========================================================================
and the MQ version info
[mqm@cis bin]$ ./dspmqver
Name: WebSphere MQ
Version: 6.0.1.1
CMVC level: p600-101-060504
BuildType: IKAP - (Production) |
|
|
Back to top |
|
 |
jefflowrey |
Posted: Wed May 09, 2007 4:23 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
If they aren't in the file, then they take the default values.
Which are documented in the System Administration Guide. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
andy840920 |
Posted: Wed May 09, 2007 4:29 am Post subject: |
|
|
Apprentice
Joined: 29 Apr 2007 Posts: 44
|
i found my program linked the libmqm.so not libmqm_r.so, but i don't know the lib is server or client. i think my program linked server lib.
but if my program re-connect and re-open in sub-process, of course, closed and disconnect the queue after MQPUT operation. the MQCONNX ended with 2059 at some times, but the QManage and Queue name can print at any time. only some times ended with it. i don't know why ?
should my program link libmqm_r.so library? |
|
Back to top |
|
 |
|