2017-04-04 6 views
0

Nous utilisons les jars AMQP ci-dessous pour envoyer des messages de java à la configuration de file d'attente dans le bus de service sur le serveur Windows (1.1). Pas de problèmes dans l'envoi de petits messages mais impossible d'envoyer des messages dont la taille est supérieure à 45kb en pré-prod et 160kb en prod. Le message n'atteint pas du tout la file d'attente et aucune exception du côté java.Bus de service sur Windows Server (1.1) utilisant Java et AMQP 1.0 Taille du message Problème

geronimo-jms_1.1_spec-1.0.1.jar QPID-AMQP-1-0-client-0.22.jar QPID-AMQP-1-0-client de-0.22.jar QPID-amqp- 1-0-common-0.22.jar

Le message reçu est correctement configuré dans la configuration de la passerelle.

Je me demande ce qui est la cause de cette taille de message limitation? Toute aide serait grandement appréciée.

Merci, Sri.

Répondre

0

Voici le petit programme de test que j'ai écrit pour envoyer un message (109 kb). Je ne reçois aucune exception du côté java et le message n'apparaît pas dans la file d'attente du bus de service.

import org.apache.qpid.amqp_1_0.jms.impl.*; 
import javax.jms.*; 
import javax.naming.Context; 
import javax.naming.InitialContext; 
import java.net.URLEncoder; 
import java.util.Hashtable; 
import java.io.*; 

public class ServiceBusPublisher { 

public static void main(String[] args) throws Exception {    
    String userName = "test"; 
    String password = "test";  
    String fqdn = "[email protected]"; 

    String connectionString = "amqps://" + encode(userName) + ":" + encode(password) + "@" + fqdn; 


     File file = new File("D:\\temp\\test.xml"); 
    FileReader fileReader = new FileReader(file); 
    BufferedReader bufferedReader = new BufferedReader(fileReader); 
    StringBuffer stringBuffer = new StringBuffer(); 
    String line; 
    while ((line = bufferedReader.readLine()) != null) { 
     stringBuffer.append(line); 
     stringBuffer.append("\n"); 
    } 
    bufferedReader.close(); 
    fileReader.close(); 

    String messageText = stringBuffer.toString();   

    System.out.print("Initial setup\n"); 
     Hashtable<String, String> env = new Hashtable<String, String>(); 
     env.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.qpid.amqp_1_0.jms.jndi.PropertiesFileInitialContextFactory"); 
     env.put(Context.PROVIDER_URL, "blah.txt"); 
     env.put("connectionfactory.ServiceBusConnectionFactory", connectionString); 
     Context context = null; 
     ConnectionFactory connectionFactory = null; 
     Connection connection = null; 
     try 
     { 
      System.out.print("Creating context\n"); 
      context = new InitialContext(env); 
      System.out.print("Creating connection factory\n"); 
      connectionFactory = (ConnectionFactory)context.lookup("ServiceBusConnectionFactory"); 
      System.out.print("Creating connection\n"); 
      connection = connectionFactory.createConnection(); 
     } 
     catch (Exception e) 
     { 
      System.out.print("Exception creating context/connection factory/connection\n"); 
      System.out.print(e.toString()); 
      return; 
     } 

     Session session = null; 
     MessageProducer producer = null; 
     try 
     { 
      System.out.print("Creating session\n"); 
      session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 
      System.out.print("Creating producer\n"); 
      producer = session.createProducer(QueueImpl.createQueue("MessageProcessingService-PRE/testqueue"));               
     } 
     catch (Exception e) 
     { 
      System.out.print("Exception creating session/producer\n"); 
      System.out.print(e.toString()); 
      return; 
     } 

     try 
     { 
      System.out.print("Creating message\n"); 
      BytesMessage message = session.createBytesMessage();     
      message.writeBytes(messageText.getBytes("UTF-8"));    
      message.setStringProperty("JMSXGroupID", "MessageProcessingService-PRE/testqueue"); 
      System.out.print("Sending\n"); 
      producer.send(message);    
     } 
     catch (Exception e) 
     { 
      System.out.print("Exception creating message and sending\n"); 
      System.out.print(e.toString()); 
      return; 
     }   

     try 
     { 
      System.out.print("Cleaning up\n"); 
      producer.close(); 
      session.close(); 
      connection.stop(); 
      connection.close(); 
     } 
     catch (Exception e) 
     { 
      System.out.print("Exception closing producer and session\n"); 
      System.out.print(e.toString()); 
     } 
} 

public static String encode(String encodee) 
    { 
     String retval = ""; 
     try { retval = URLEncoder.encode(encodee, "UTF-8"); } catch (Exception e) { System.out.print("Encoding failed\n"); } 
     return retval; 
    } 

}

+0

Je pourrais envoyer un message de petite taille sans aucun problème avec le code ci-dessus. – garim

+0

J'ai essayé test ci-dessus avec 0,32 pot et se maintenant en dessous exception javax.jms.JMSException: Lien était detachedjavax.jms.JMSException: Lien a été détaché \t à org.apache.qpid.amqp_1_0.jms.impl.MessageProducerImpl $ dispositionAction .wasAccepted (MessageProducerImpl.java:524) \t à org.apache.qpid.amqp_1_0.jms.impl.MessageProducerImpl.send (MessageProducerImpl.java:336) \t à org.apache.qpid.amqp_1_0.jms.impl.MessageProducerImpl .send (MessageProducerImpl.java:240) \t à ServiceBusPublisher.main (ServiceBusPublisher.java:92) s et maintenant je reçois ci-dessous exception – garim