|   | 
	 
  
    | 
RSS Feed - WebSphere MQ Support
 | 
RSS Feed - Message Broker Support
 |   
 
  
	     | 
	 | 
   
 
  
	|  AMQ6175 - MQ could not load gnx2.dll - WHY ? | 
	« View previous topic :: View next topic »  | 
   
  
  	
	  
		
		
		  | Author | 
		  Message
		 |  
		
		  | sebastia | 
		  
		    
			  
				 Posted: Wed Jun 07, 2006 10:41 pm    Post subject: AMQ6175 - MQ could not load gnx2.dll - WHY ? | 
				     | 
			   
			 
		   | 
		 
		
		    Grand Master
 
 Joined: 07 Oct 2004 Posts: 1003
  
  | 
		  
		    
			  
				My Message Exit does not load ...
 
 
 In the Sender channel, it is declared "gnx2(gna)"
 
 
The code (gnx2.c) inside has :
 
 
+++
 
 
 void MQStart ( ) { ; } ;
 
 
 void MQENTRY gna (
 
 
+++
 
 
 Compiler options :
 
 
+++
 
 CL  /MD  /GD  /V"versio 1.2" /LD  /I"C:\Program Files\IBM\WebSphere MQ\Tools\c\include"  GNX2.C    "c:\Program Files\IBM\WebSphere MQ\Tools\Lib\mqm.lib" "c:\Program Files\IBM\WebSphere MQ\Tools\Lib\mqmvx.lib"
 
 
+++
 
 
 TRC file related to RUNMQCHL is :
 
 
+++
 
0000D34F 08:20:45.657772   2096.1     -----}  zstMQSET (rc=OK)
 
0000D350 08:20:45.658448   2096.1     -----{  rriInitExits
 
0000D351 08:20:45.658457   2096.1     ------{  lpiSPIAlter
 
0000D352 08:20:45.658553   2096.1     -------{  zstVerifyPCD
 
0000D353 08:20:45.658561   2096.1     -------}  zstVerifyPCD (rc=OK)
 
0000D354 08:20:45.658568   2096.1     -------{  xcsCheckPointer
 
0000D355 08:20:45.658574   2096.1     -------}  xcsCheckPointer (rc=OK)
 
0000D356 08:20:45.658588   2096.1     ------}  lpiSPIAlter (rc=OK)
 
0000D357 08:20:45.658605   2096.1     ------{  xcsLoadFunction
 
0000D358 08:20:45.658613   2096.1      Object:gnx2
 
0000D359 08:20:45.658622   2096.1      Trace from production path
 
0000D35A 08:20:45.659757   2096.1      C:\Program Files\IBM\WebSphere MQ\exits\gnx2.dll found
 
0000D35B 08:20:45.659771   2096.1      FullPathObj:C:\Program Files\IBM\WebSphere MQ\exits\gnx2.dll
 
0000D35C 08:20:45.660497   2096.1     -------{  xcsFFST
 
0000D35D 08:20:45.660512   2096.1      !! - ErrorCode :- 20006175 Numeric Insert1 :- 0000007f (127) Numeric Insert2 :- 00000000 (0)
 
0000D35E 08:20:45.660519   2096.1      !! - gnx2
 
0000D35F 08:20:45.660525   2096.1      !! - GetProcAddress
 
0000D360 08:20:45.660531   2096.1     --------{  xcsRequestThreadMutexSem
 
0000D368 08:20:45.660639   2096.1     --------}  xcsRequestThreadMutexSem (rc=OK)
 
0000D369 08:20:45.660652   2096.1     --------{  xcsDisplayMessageForSubpool
 
0000D36A 08:20:45.660672   2096.1     ---------{  xcsQueryValueForSubpool
 
0000D36B 08:20:45.660681   2096.1     ---------}  xcsQueryValueForSubpool (rc=OK)
 
0000D36C 08:20:45.660688   2096.1     ---------{  xcsDisplayMessageForSubpool
 
0000D36D 08:20:45.660698   2096.1      msgid:20006175 a1:0000007F a2:00000000 c1:gnx2 c2:GetProcAddress c2:(null)
 
0000D36E 08:20:45.660710   2096.1
 
+++
 
 
 FDC file has :
 
+++
 
| Probe Id          :- XY176002                                               |
 
| Application Name  :- MQM                                                    |
 
| Component         :- xcsLoadFunction                                        |
 
| Build Date        :- Aug  2 2005                                            |
 
| CMVC level        :- p530-11-L050802                                        |
 
| Build Type        :- IKAP - (Production)                                    |
 
| UserID            :- MUSR_MQADMIN                                           |
 
| Process Name      :- C:\Program Files\IBM\WebSphere MQ\bin\runmqchl.EXE     |
 
| Process           :- 00002152                                               |
 
| Thread            :- 00000001                                               |
 
| QueueManager      :- RQM                                                    |
 
| Major Errorcode   :- xecU_S_LOAD_FAILED                                     |
 
| Minor Errorcode   :- OK                                                     |
 
| Probe Type        :- MSGAMQ6175                                             |
 
| Probe Severity    :- 2                                                      |
 
| Probe Description :- AMQ6175: El sistema no ha podido cargar dinámicamente  |
 
|   la biblioteca gnx2. El código de retorno del sistema es 127. El gestor de |
 
|   colas continuará sin ese módulo.                                          |
 
| FDCSequenceNumber :- 0                                                      |
 
| Arith1            :- 127 7f                                                 |
 
| Comment1          :- gnx2                                                   |
 
|                                                                             |
 
| Comment2          :- GetProcAddress 
 
+++
 
 
=============================
 
=============================
 
=============================
 
=============================
 
 
>>>     WHAT IS THAT "127" return code ???
 
=============================
 
=============================
 
=============================
 
=============================
 
 
 ( I see I am missing a "name.DEF" file for compiling ...
 
Could it be the reason ??? ) | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | sebastia | 
		  
		    
			  
				 Posted: Wed Jun 07, 2006 10:47 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		    Grand Master
 
 Joined: 07 Oct 2004 Posts: 1003
  
  | 
		  
		    
			  
				Using a myexit.def file :
 
 
Its contents is :
 
 
+++
 
LIBRARY   exit
 
PROTMODE
 
DESCRIPTION ’Provides Retry and Channel exits’
 
CODE      SHARED     LOADONCALL
 
DATA      NONSHARED  MULTIPLE
 
HEAPSIZE  4096
 
STACKSIZE 8192
 
EXPORTS   Retry
 
 
+++
 
 
The CL resuts are now :
 
 
+++
 
GNX2.C
 
Microsoft (R) Incremental Linker Version 6.00.8168
 
Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
 
 
/out:GNX2.dll
 
/dll
 
/implib:GNX2.lib
 
/def:myexit.def
 
GNX2.obj
 
"c:\Program Files\IBM\WebSphere MQ\Tools\Lib\mqm.lib"
 
"c:\Program Files\IBM\WebSphere MQ\Tools\Lib\mqmvx.lib"
 
myexit.def : warning LNK4017: PROTMODE statement not supported for the target platform; ignored
 
myexit.def : warning LNK4017: CODE statement not supported for the target platform; ignored
 
myexit.def : warning LNK4017: DATA statement not supported for the target platform; ignored
 
myexit.def : error LNK2001: unresolved external symbol Retry
 
GNX2.lib : fatal error LNK1120: 1 unresolved externals
 
LINK : fatal error LNK1141: failure during build of exports file
 
+++
 
 
 ? any clue ? | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | sebastia | 
		  
		    
			  
				 Posted: Wed Jun 07, 2006 11:01 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		    Grand Master
 
 Joined: 07 Oct 2004 Posts: 1003
  
  | 
		  
		    
			  
				Solution :
 
 
 myexit.def file with :
 
 
+++
 
LIBRARY  GNX2
 
 
PROTMODE
 
 
DESCRIPTION 'GN Channel Translation Exit'
 
 
CODE SHARED
 
DATA NONSHARED MULTIPLE
 
 
HEAPSIZE  16384
 
STACKSIZE 16384
 
 
EXPORTS     gna   @1
 
+++
 
 
 Compile as this :
 
 
+++
 
 
 CL  /MD  /GD  /V"versio 1.2" /LD  /I"C:\Program Files\IBM\WebSphere MQ\Tools\c\include"  GNX2.C    "c:\Program Files\IBM\WebSphere MQ\Tools\Lib\mqm.lib" "c:\Program Files\IBM\WebSphere MQ\Tools\Lib\mqmvx.lib"  -DEFAULTLIB myexit.def
 
 
+++
 
 
 
 Enjoy ! | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | dutchman | 
		  
		    
			  
				 Posted: Fri Jul 28, 2006 3:06 am    Post subject: AMQ6175 IP chl exit when porting to Sun Solaris | 
				     | 
			   
			 
		   | 
		 
		
		   Acolyte
 
 Joined: 15 May 2001 Posts: 71 Location: Netherlands 
  | 
		  
		    
			  
				Hya chaps ... I've added my related problem to this thread. Hope it's ok.
 
basically, I've got a chl exit that checks the incoming IP address, and check that against a file of 'allowed' IP addresses. Nice and simple and it works fine under Linux (V5.3 CSd12)
 
 
I'm now porting it to Sun Solaris (MQ V5.3 CSD7) and the first hurdle was trying to find the 'correct' parameters for gcc to work. The IBM Intercommuncation manual is not exactly very helpful.
 
 
I did, however, find the following link useful: http://www.mail-archive.com/mqseries@listserv.meduniwien.ac.at/msg05999.html
 
 
The first issue however, is that the -lmqm_r parameter does not work under Solaris, so I left it off. It then compiled/linked ok, but than gave the AMQ6175 error, e.g.
 
 
07/27/06  14:46:34
 
AMQ6175: The system could not dynamically load the library
 
/var/mqm/exits/eqits_IPexit. The error message was ld.so.1: amqcrsta: fatal:
 
libgcc_s.so.1: open failed: No such file or directory. The queue manager will
 
continue without this module.
 
 
I then followed the 2nd suggestion in the weblink, which was to use the -R parm to specifically give it the reference to file libgcc_s_so.1 (which fyi was libgcc_s.so.1 =>         /sbcimp/run/pd/gcc/3.2.1/lib/libgcc_s.so.1 - using the ldd output).
 
 
So the -R was supplied to gcc, recompiled/linked and now I've got the dreaded SIGSEGV FDC.
 
 
I'll start by chaning the code so that initially it does nothing, and then gradually add more and more code, but I'm more concerned with the gcc queries.
 
 
Regards ... R | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | dutchman | 
		  
		    
			  
				 Posted: Fri Jul 28, 2006 7:49 am    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		   Acolyte
 
 Joined: 15 May 2001 Posts: 71 Location: Netherlands 
  | 
		  
		    
			  
				problem solved. For some reason a 'strcpy' which worked fine under Linux had to be replaced by a 'strncpy'.
 
I am still running with the -R gcc parm.
 
 
Cheers ... R | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | mvic | 
		  
		    
			  
				 Posted: Fri Jul 28, 2006 7:57 am    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		    Jedi
 
 Joined: 09 Mar 2004 Posts: 2080
  
  | 
		  
		    
			  
				
   
	| dutchman wrote: | 
   
  
	problem solved. For some reason a 'strcpy' which worked fine under Linux had to be replaced by a 'strncpy'.
 
I am still running with the -R gcc parm.
 
 
Cheers ... R | 
   
 
 
Since the original question was for a problem on Windows, it might have been more helpful to have this new question in a new thread.
 
 
It looks like I'm the first to say it, but it needs to be said:  On Solaris, MQ has been compiled with the Sun compilers, and all testing etc. is done with programs, shared libraries etc. compiled with the Sun compilers.  If you get stuff to work that's been compiled with gcc, then great.  However, I think I have to point out that IBM Support will not be able to support your MQ system through any related problems you might encounter.
 
 
See http://www.ibm.com/support/docview.wss?rs=171&uid=swg27006263 for the official list of supported environments. | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | 
		    
		   | 
		 
	   
	 | 
   
 
  
	     | 
	 | 
	Page 1 of 1 | 
   
 
 
 
  
  	
	  
		
		  
 
  | 
		  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
  | 
  		 
	   
	 | 
   
 
  	 | 
	  |