2017-04-04 15 views
0

以下のAMQP jarを使用して、javaからWindowsサーバー(1.1)上のサービスバスのキュー設定にメッセージを送信しています。小さなメッセージを送信する際には問題はありませんが、prevで45kb以上のサイズのメッセージを送信できず、prodで160kbのメッセージを送信できません。メッセージはキューにまったく当たっておらず、Java側で例外もありません。JavaおよびAMQP 1.0を使用するWindowsサーバー(1.1)のサービスバスメッセージサイズの問題

のgeronimo-jms_1.1_spec-1.0.1.jar qpid-AMQP-1-0-クライアント0.22.jar qpid-AMQP-1-0-クライアント-JMS-0.22.jar qpid-amqp- 1-0-common-0.22.jar

受信したメッセージがゲートウェイ設定で正しく設定されています。

このメッセージのサイズ制限を引き起こしていただきました!私は疑問に思って?どんな助けでも大歓迎です。

ありがとう、 Sri。

答えて

0

私は1つのメッセージ(109 kb)を送信するために書いた小さなテストプログラムです。私はJava側で例外を取得していないし、また、メッセージがサービスバスのキューに表示されていません。

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

Iは、上記のコードで問題なく小さなサイズのメッセージを送信することができます。 – garim

+0

私は0.32瓶にテストの上にしようと、今、例外の下 javax.jms.JMSExceptionを取得:リンクorg.apache.qpid.amqp_1_0.jms.impl.MessageProducerImpl $ DispositionActionで \tを剥離した:リンクはdetachedjavax.jms.JMSExceptionでしたorg.apache.qpid.amqp_1_0.jms.impl.MessageProducerImplで.wasAccepted(MessageProducerImpl.java:524) org.apache.qpid.amqp_1_0.jms.impl.MessageProducerImpl.sendで\t(MessageProducerImpl.java:336) \t .send(MessageProducerImpl.java:240) \t(ServiceBusPublisher.java:92)で、ServiceBusPublisher.mainにあります。 – garim

関連する問題