2009-04-23 5 views
1

Mon application est une application Java autonome que les clients téléchargent, installent et exécutent. Il utilise MQ pour communiquer avec un hôte, qui travaille depuis des années. Ni moi ni les clients n'ont rien MQ installé sur leurs machines Windows; Nous incluons et utilisons com.ibm.mq.jar pour faire le travail.Sur Windows - où est un mqji.properties pour moi d'utiliser?

Apparemment, cependant, MQ a besoin d'un fichier mqji.properties dans le classpath pour empêcher cela:

Unable to load message catalog - mqji 
com.ibm.mq.MQException: Message catalog not found 

Donc, ma question est la suivante: Où puis-je obtenir un ??

+0

Si cela a fonctionné pendant des années, qu'est-il arrivé à l'ancien? Qu'avez-vous changé qui l'a fait cesser de fonctionner tout à coup? – amischiefr

Répondre

1

Voici une copie de mon fichier mqji.properties.

Copiez et collez dans un éditeur de texte.
Enregistrer sous mqji.properties
Placez le répertoire dans lequel ce fichier se trouve dans votre CLASSPATH.

# mqjiEn_US.properties 
# Messages produced by the Websphere MQ Java interface classes 
# (shared by bindings and by client) 
# Messages beginning with MQJI are explanations for exceptions 
# Messages beginning with MQJE are errors 
# 
# From class MQDistributionList 
# 
1=MQJI001: Queue manager object was null. 
2=MQJI002: Not connected to a queue manager. 
3=MQJI003: No object records supplied. 
4=MQJI004: No response records supplied. 
5=MQJI005: Not enough response records supplied. 
6=MQJI006: An object or response record was null. 
7=MQJI007: openResponse parameter was null. 
8=MQJI008: Null message passed to put. 
9=MQJI009: Null put message options passed to put. 
10=MQJI010: Number of message trackers and response records do not match. 
11=MQJI011: The distribution list has been closed. 
# 
# From class MQEnvironment 
# 
12=Websphere MQ Client for Java v5.3 
# 
# From class MQGetMessageOptions 
# 
13=MQJI013: Unsupported version number - {0} 
14=MQJI014: Insufficient data received from queue manager. 
15=MQJI015: Erroneous eyecatcher : {0} 
# 
# From class MQManagedObject 
# 
16=MQJI016: Object has been closed. 
17=MQJI017: No selectors specified. 
# 
# From class MQMD 
# 
18=MQJI015: Erroneous eyecatcher : {0} 
19=MQJI018: Array copy error in MQMD 
# 
# From class MQMessage 
# 
20=MQJI019: Malformed UTF string in MQMessage::readLine 
21=MQJI020: Unsupported codeset : {0} 
22=MQJI021: String index error occurred during codeset conversion 
23=MQJI015: Erroneous eyecatcher : {0} 
# 
# From class MQOD 
# 
24=MQJI022: Unmatched number of object and response records 
# 
# From class MQPutMessageOptions 
# 
25=MQJI023: Null MQMessageTracker object supplied 
# 
# From class MQMessageTracker 
# 
26=MQJI024: Array copy error in MQMessageTracker 
# 
# From class MQQueue 
# 
27=MQJI025: Null MQMessage passed to get 
28=MQJI026: Null MQGetMessageOptions passed to get 
29=MQJI027: The queue has been closed 
30=MQJI028: Null MQMessage passed to put 
31=MQJI029: Null MQPutMessageOptions passed to put 
# 
# From class MQQueueManager 
# 
32=MQJI030: The queue manager does not support distribution lists. 
# 
# From class MQS390FloatSupport 
# 
33=MQJI031: Number outside of range for double precision S/390 Float 
# 
# From class MQS390PackedDecimalSupport 
# 
34=MQJI032: Invalid sign nibble in packed decimal 
35=MQJI033: Packed Decimal digit outside of range 0-9 
36=MQJI034: Outside of range for short packed decimal (+/-999) 
37=MQJI035: Outside of range for integer packed decimal (+/-9999999) 
38=MQJI036: Outside of range for long packed decimal (0+/-999999999999999) 
# 
# From class MQException 
# 
39=MQJE001: Completion Code {0}, Reason {1} 
40=MQJE001: An MQException occurred: Completion Code {0}, Reason {1}\n{2} 
# 
# Messages produced by client only classes... 
# 
41=MQJI037: Error occurred during Websphere MQ API call - reason code {0} 
42=MQJI038: Unexpected internal error during string index processing 
43=MQJE002: Socket output stream was null 
44=MQJE003: IO error transmitting message buffer 
45=MQJE004: Socket input stream was null 
46=MQJE005: TSH eyecatcher not found. Eyecatcher was {0} 
47=MQJE006: Internal error during array copy 
48=MQJE007: IO error reading message data 
49=MQJE008: IOException whilst sending status message 
50=MQJE009: Failed to build API header 
51=MQJE010: Unknown host: {0} 
52=MQJE011: Socket connection attempt refused 
53=MQJE012: Security error - cannot connect to host {0} 
54=MQJE013: Error accessing socket streams 
55=MQJE014: Control Point rejected connection 
56=MQJE015: Error connecting to Control Point 
57=MQJE016: MQ queue manager closed channel immediately during connect\n\Closure reason = {0} 
58=MQJE017: MQ queue manager sent status error {0} during connect 
59=MQJE018: Protocol error - unexpected segment type received 
60=MQJE019: Error creating initial data segment 
61=MQJE020: CCSID not supported by queue manager 
62=MQJE021: Encoding not supported by queue manager 
63=MQJE022: FAP level not supported by queue manager 
64=MQJE023: Negotiation failed on maximum messages per batch 
65=MQJE024: Sequence wrap value not supported by queue manager 
66=MQJE025: Channel closed after two initial changes. Closure reason {0} 
67=MQJE026: Queue manager sent status error {0} during connect 
68=MQJE027: Queue manager security exit rejected connection with error code {0} 
69=MQJE028: Channel closed during security exchanges 
70=MQJE029: Unexpected message type sent by queue manager 
71=MQJE030: IOException during security flows 
72=MQJE031: Security exit closed the channel 
73=MQJE032: Queue manager security exit rejected connection with reason code {0} 
74=MQJE033: A required security flow was not sent by the queue manager 
75=MQJE034: Unexpected message type sent by queue manager 
76=MQJE035: Negotiated maximum transmission size is too small 
77=MQJE036: Queue manager rejected connection attempt 
78=MQJE037: Remote queue manager closed the connection 
79=MQJE038: Unexpected segment type {0} received 
80=MQJE039: IOException whilst building connection data stream 
81=MQJE040: Channel closed by exit 
82=MQJE041: Unsupported version number - (0) 
83=MQJE042: Erroneous eyecatcher: {0} 
84=MQJE043: Insuffucient data received from queue manager 
85=MQJE044: Array copy error in MQMD 
86=MQJE045: Malformed UTF string 
87=MQJE046: Unsupported codeset : {0} 
88=MQJE047: String index error occurred during codeset conversion 
89=MQJE048: Invalid sign nibble in packed decimal 
90=MQJE049: Packed Decimal digit outside of range 0-9 
91=MQJE050: Outside of range for short packed decimal (+/-999) 
92=MQJE051: Outside of range for integer packed decimal (+/-9999999) 
93=MQJE052: Outside of range for long packed decimal (0+/-999999999999999) 
94=Websphere MQ Bindings for Java v5.3 
95=MQJE053: The Websphere MQ Bindings for Java library could not be loaded 
96=MQJE054: The queue manager does not support distribution lists 
97=MQJE055: The queue manager does not support version 2 Websphere MQ API structures 
98=MQJE056: Initial negotiation failure 
99=MQJE057: Channel closed during security exchanges 
100=MQJE058: Invalid number of object or response records 
101=MQJE059: String index error 
102=MQJE060: Could not find class {0} 
103=MQJE061: Could not find field {0} 
104=MQJE062: Could not find method {0} 
# 
# Messages used by MQManagedConnectionJ11, ManagedConnectionFactories 
# and MQManagedConnectionMetaData 
# 
105=MQJI039: Invalid ConnectionRequestInfo object 
106=MQJI040: MQManagedConnection already destroyed 
107=MQJI041: Method {0} is not supported by Websphere MQ Classes for Java 
108=MQJI042: MQManagedConnection is not reusable 
# 
# Messages from MQManagedConnectionMetaData 
# 
109=IBM Websphere MQ 
110=Command Level {0} 
# 
# Messages from MQXAi 
# 
111=Security manager prevented access to native methods library for MQ XA support. 
112=Failed to load native methods library for MQ XA support. 
# 
# Messages from MQXAResource 
# 
113=xa_open failed 
114=XA operation failed, see errorCode 
115=XAResource closed 

# 
# Messages produced by com.ibm.mq.MQMsg2 
# 
116=MQJE063: Unsupported character set {0} 
117=MQJE064: Unsupported version of MQMD structure {0} 
118=MQJE065: Inconsistent internal state detected 

# message when server doesn't support client XA 
119=client connection not XA enabled 

# 
# Messages produced via SSL options on a client connection 
# 
120=MQJE066: {0} provided as an unsupported object type 
121=MQJE067: Peer name {0} did not match requested name {1} 
122=MQJE068: Server certificate has been revoked 
123=MQJE069: Unable to contact CertStore 
124=MQJE070: SSL Protocol error: Channel not configured for SSL? 
+0

La question fondamentale ici est de savoir si le but est d'aider les gens à obtenir quelque chose qui fonctionne, même s'il n'est pas fiable et fragile, ou si l'idée est de les orienter vers une réponse fiable et prête pour la production. Voici quelqu'un qui produit un produit sous licence et payant dans lequel il incorpore des morceaux du code d'un autre fournisseur. Non seulement elle est fragile et peu fiable (comme en témoigne la question elle-même), mais elle est illégale et met en péril à la fois la société de l'affiche et ses clients. -1 pour une réponse qui perpétue ces problèmes. –

1

La bonne réponse est ici que les clients ont besoin de télécharger le client WMQ réelle et l'installer avec votre application et que votre demande doit être distribué sans les pots clients WMQ. Cela est vrai pour une variété de raisons:

  • Vous n'êtes pas autorisé à redistribuer le code du fournisseur. Lorsque le code du client ou du serveur WMQ est inclus dans une licence OEM, il s'agit de l'installation complète et pas seulement de quelques fichiers jar.
  • L'une des raisons de l'installation du client complet est l'obtention d'un support. L'installation complète du client est gratuite et inclut un certain nombre de fonctions de diagnostic. La seule raison de ne pas exiger une installation complète est la commodité et si vous chargez de l'argent pour l'application toute commodité est largement compensée par la responsabilité potentielle.
  • Maintenance. Si le client installe le client WMQ, il peut appliquer une maintenance périodique auprès d'IBM et savoir qu'il s'agit d'une distribution complète et intacte. À moins que votre entreprise ne soit prête à garantir que les composants qu'elle choisit de redistribuer constituent une installation valide, il vaut mieux utiliser l'installation officielle. Étant donné que la nature de la question est de demander à cette communauté ce qu'est l'installation non-fournisseur valide, je ne vois pas comment votre entreprise peut supporter cette configuration du code d'IBM.
  • Conformité réglementaire. Si l'un de vos clients est soumis aux réglementations PCI, SOX, HIPAA ou gouvernementales, la certification ne peut pas être obtenue dans cette configuration. Par exemple, pour être conforme à la norme PCI, l'application déployée doit avoir appliqué le groupe de correctifs 7.0.1.3 il y a déjà un certain temps. Sans l'installation complète, il est impossible d'appliquer le groupe de correctifs ou de prouver à un auditeur qu'il a été installé en fonction des bocaux.
  • Sécurité. Si vous n'utilisez pas SSL ou une sortie, il est possible que vos clients usurpent l'identité d'un autre ou le compte administratif WMQ. Pour utiliser SSL, vous devez avoir installé le fournisseur IBM JCCE fourni avec GSKit, qui fait partie de l'installation complète du client et contient le code C compilé natif disponible dans les fichiers jar. En fonction de la description de l'application, je suppose que l'un de vos clients peut administrer votre QMgr à distance et anonymement et exécuter du code de système d'exploitation arbitraire. Pas bon.

Donc, la bonne réponse est pour vous et vos clients d'aller télécharger et installer le client complet WMQ (SupportPac MQC7) et configurer l'application pour exécuter sur ce point. Tout ce qui met moins de risques pour vos clients et votre entreprise.

Et si vous avez un doute sur les risques de sécurité je l'ai mentionné, s'il vous plaît se référer à l'IMPACT Durcissement présentation WebSphere MQ et les WebSphere MQ Atelier pratique de sécuritéposted here.

Questions connexes