diff options
Diffstat (limited to 'doc/book/src/java-broker/Qpid-Java-FAQ.xml')
-rw-r--r-- | doc/book/src/java-broker/Qpid-Java-FAQ.xml | 890 |
1 files changed, 0 insertions, 890 deletions
diff --git a/doc/book/src/java-broker/Qpid-Java-FAQ.xml b/doc/book/src/java-broker/Qpid-Java-FAQ.xml deleted file mode 100644 index 2940e58138..0000000000 --- a/doc/book/src/java-broker/Qpid-Java-FAQ.xml +++ /dev/null @@ -1,890 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one - or more contributor license agreements. See the NOTICE file - distributed with this work for additional information - regarding copyright ownership. The ASF licenses this file - to you under the Apache License, Version 2.0 (the - "License"); you may not use this file except in compliance - with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, - software distributed under the License is distributed on an - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - ---> - -<section id="Qpid-Java-FAQ"><title> - Qpid Java FAQ - </title> - - <section role="h2" id="QpidJavaFAQ-Purpose"> - <title>Purpose</title> - <para> - Here are a list of commonly asked questions and answers. Click on - the the bolded questions for the answer to unfold. If you have - any questions which are not on this list, please email our - qpid-user list. - </para> - - <section role="h3" id="QpidJavaFAQ-WhatisQpid-3F"><title> - What is Qpid ? - </title> - - <para> - The java implementation of Qpid is a pure Java message broker - that implements the AMQP protocol. Essentially, Qpid is a robust, - performant middleware component that can handle your messaging - traffic. - </para><para> - It currently supports the following features: - </para><itemizedlist> - <listitem><para>High performance header-based routing for messages - </para></listitem> - <listitem><para>All features required by the JMS 1.1 specification. Qpid - passes all tests in the Sun JMS compliance test suite - </para></listitem> - <listitem><para>Transaction support - </para></listitem> - <listitem><para>Persistence using the high performance Berkeley DB Java - Edition. The persistence layer is also pluggable should an - alternative implementation be required. The BDB store is - available from the <xref linkend="qpid_3rd-Party-Libraries"/> page - </para></listitem> - <listitem><para>Pluggable security using SASL. Any Java SASL provider can be - used - </para></listitem> - <listitem><para>Management using JMX and a custom management console built - using Eclipse RCP - </para></listitem> - <listitem><para>Naturally, interoperability with other clients including the - Qpid .NET, Python, Ruby and C++ implementations - </para></listitem> - </itemizedlist> - <!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-WhyamIgettingaConfigurationExceptionatbrokerstartup-3F"><title> - Why am I getting a ConfigurationException at broker startup ? - </title> - - <section role="h4" id="QpidJavaFAQ-InvocationTargetException"><title> - InvocationTargetException - </title> - <para> - If you get a java.lang.reflect.InvocationTargetException on - startup, wrapped as ConfigurationException like this: - </para> - <programlisting> -Error configuring message broker: org.apache.commons.configuration.ConfigurationException: java.lang.reflect.InvocationTargetException -2008-09-26 15:14:56,529 ERROR [main] server.Main (Main.java:206) - Error configuring message broker: org.apache.commons.configuration.ConfigurationException: java.lang.reflect.InvocationTargetException -org.apache.commons.configuration.ConfigurationException: java.lang.reflect.InvocationTargetException -at org.apache.qpid.server.security.auth.database.ConfigurationFilePrincipalDatabaseManager.initialisePrincipalDatabase(ConfigurationFilePrincipalDatabaseManager.java:158) -at org.apache.qpid.server.security.auth.database.ConfigurationFilePrincipalDatabaseManager.initialisePrincipalDatabases(ConfigurationFilePrincipalDatabaseManager.java:87) -at org.apache.qpid.server.security.auth.database.ConfigurationFilePrincipalDatabaseManager.<init>(ConfigurationFilePrincipalDatabaseManager.java:56) -at org.apache.qpid.server.registry.ConfigurationFileApplicationRegistry.initialise(ConfigurationFileApplicationRegistry.java:117) -at org.apache.qpid.server.registry.ApplicationRegistry.initialise(ApplicationRegistry.java:79) -at org.apache.qpid.server.registry.ApplicationRegistry.initialise(ApplicationRegistry.java:67) -at org.apache.qpid.server.Main.startup(Main.java:260) -at org.apache.qpid.server.Main.execute(Main.java:196) -at org.apache.qpid.server.Main.<init>(Main.java:96) -at org.apache.qpid.server.Main.main(Main.java:454) -at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) -at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) -at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) -at java.lang.reflect.Method.invoke(Method.java:597) -at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90) -Caused by: java.lang.reflect.InvocationTargetException -at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) -at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) -at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) -at java.lang.reflect.Method.invoke(Method.java:597) -at org.apache.qpid.server.security.auth.database.ConfigurationFilePrincipalDatabaseManager.initialisePrincipalDatabase(ConfigurationFilePrincipalDatabaseManager.java:148) -</programlisting> - <para> - .. then it means you have a missing password file. - </para><para> - You need to create a password file for your deployment and update - your config.xml to reflect the location of the password file for - your instance. - </para><para> - The config.xml can be a little confusing in terms of element - names and file names for passwords. - </para><para> - To do this, you need to edit the passwordDir element for the - broker, which may have a comment to that effect: - </para> - <programlisting> -<passwordDir><!-- Change to the location --></passwordDir> -</programlisting> - <para> - The file should be named passwd by default but if you want to you - can change this by editing this element: - </para> - <programlisting> -<value>${passwordDir}/passwd</value> -</programlisting> - <!--h4--></section> - - - <section role="h4" id="QpidJavaFAQ-Cannotlocateconfigurationsourcenull-2Fvirtualhosts.xml"><title> - Cannot locate configuration source null/virtualhosts.xml - </title> - - <para> - If you get this message, wrapped inside a ConfigurationException - then you've come across a known issue, see JIRA <xref linkend="qpid_QPID-431"/> - </para><para> - The work around is to use a qualified path as the parameter value - for your -c option, rather than (as you migth be) starting the - broker from your installed etc directory. Even going up one level - and using a path relative to your £QPID_HOME directory - would sort this e.g qpid-server -c ./etc/myconfig.xml - </para> -<!--h4--></section> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-HowdoIruntheQpidbroker-3F"><title> - How do I run - the Qpid broker ? - </title> - - <para> - The broker comes with a script for unix/linux/cygwin called - qpid-server, which can be found in the bin directory of the - installed package. This command can be executed without any - paramters and will then use the default configuration file - provided on install. - </para><para> - For the Windows OS, please use qpid-server.bat. - </para><para> - There's no need to set your classpath for QPID as the scripts - take care of that by adding jar's with classpath defining - manifest files to your classpath. - </para><para> - For more information on running the broker please see our - <xref linkend="Getting-Started"/> page. - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-HowcanIcreateaconnectionusingaURL-3F"><title> - How can I - create a connection using a URL ? - </title> - - <para> - Please see the <xref linkend="qpid_Connection-URL-Format"/> documentation. - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-HowdoIrepresentaJMSDestinationstringwithQPID-3F"><title> - How - do I represent a JMS Destination string with QPID ? - </title> - - <section role="h4" id="QpidJavaFAQ-Queues"><title> - Queues - </title> - - <para> - A queue can be created in QPID using the following URL format. - </para><para> - direct://amq.direct/<Destination>/<Queue - Name> - </para><para> - For example: - direct://amq.direct/<Destination>/simpleQueue - </para><para> - Queue names may consist of any mixture of digits, letters, and - underscores. - </para><para> - The <xref linkend="BindingURLFormat"/> is described in more - detail on it's own page. - </para> -<!--h4--></section> - - <section role="h4" id="QpidJavaFAQ-Topics"><title> - Topics - </title> - - <para> - A topic can be created in QPID using the following URL format. - </para><para> - topic://amq.topic/<Topic Subscription>/ - </para><para> - The topic subscription may only contain the letters A-Z and a-z - and digits 0-9. - </para><para> - The topic subscription is formed from a series of words that may - only contain the letters A-Z and a-z and digits 0-9. - The words are delimited by dots. Each dot represents a new level. - </para><para> - For example: stocks.nyse.ibm - </para><para> - Wildcards can be used on subscription with the following meaning. - </para><itemizedlist> - <listitem><para>match a single level - # match zero or more levels - </para></listitem> - </itemizedlist><para> - For example: - With two clients - 1 - stocks.*.ibm - 2 - stocks.#.ibm - </para><para> - Publishing stocks.nyse.ibm will be received by both - clients but stocks.ibm and stocks.world.us.ibm - will only be received by client 2. - </para><para> - The topic currently does not support wild cards. - </para> -<!--h4--></section> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-HowdoIconnecttothebrokerusingJNDI-3F"><title> - How do I - connect to the broker using JNDI ? - </title> - - <para> - see <xref linkend="How-to-Use-JNDI"/> - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-I-27musingSpringandWeblogiccanyouhelpmewiththeconfigurationformovingovertoQpid-3F"><title> - I'm using Spring and Weblogic - can you help me with the - configuration for moving over to Qpid ? - </title> - - <para> - Here is a donated Spring configuration file <ulink - url="http://qpid.apache.org/qpid-java-faq.data/appContext.zip">appContext.zip</ulink> - which shows the config for Qpid side by side with - Weblogic. HtH ! - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-HowdoIconfigurethelogginglevelforQpid-3F"><title> - How do - I configure the logging level for Qpid ? - </title> - - <para> - The system property - </para> - <programlisting> -amqj.logging.level -</programlisting> - <para> - can be used to configure the logging level. - For the broker, you can use the environment variable - AMQJ_LOGGING_LEVEL which is picked up by the qpid-run script - (called by qpid-server to start the broker) at runtime. - </para><para> - For client code that you've written, simply pass in a system - property to your command line to set it to the level you'd like - i.e. - </para> - <programlisting> --Damqj.logging.level=INFO -</programlisting> - <para> - The log level for the broker defaults to INFO if the env variable - is not set, but you may find that your log4j properties affect - this. Setting the property noted above should address this. - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-HowcanIconfiguremyapplicationtouseQpidclientlogging-3F"><title> - How can I configure my application to use Qpid client - logging? - </title> - - <para> - If you don't already have a logging implementation in your - classpath you should add slf4-log4j12-1.4.0.jar and - log4j-1.2.12.jar. - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-HowcanIconfigurethebroker-3F"><title> - How can I - configure the broker ? - </title> - - <para> - The broker configuration is contained in the - <installed-dir>/etc/config.xml file. You can copy and edit - this file and then specify your own configuration file as a - parameter to the startup script using the -c flag i.e. - qpid-server -c <your_config_file's_path> - </para><para> - For more detailed information on configuration, please see - <xref linkend="qpid_Qpid-Design---Configuration"/> - </para><para> - - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-Whatportsdoesthebrokeruse"><title> - What ports - does the broker use? - </title> - - <para> - The broker defaults to use port 5672 at startup for AMQP - traffic. - If the management interface is enabled it starts on port 8999 by - default. - </para><para> - The JMX management interface actually requires 2 ports to - operate, the second of which is indicated to the client - application during connection initiation to the main (default: - 8999) port. Previously this second port has been chosen at random - during broker startup, however since Qpid 0.5 this has been fixed - to a port 100 higher than the main port(ie Default:9099) in order - to ease firewall navigation. - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-HowcanIchangetheportthebrokerusesatruntime-3F"><title> - How - can I change the port the broker uses at runtime ? - </title> - - <para> - The broker defaults to use port 5672 at startup for AMQP - traffic. - The broker also uses port 8999 for the JMX Management interface. - </para><para> - To change the AMQP traffic port use the -p flag at startup. To - change the management port use -m - i.e. qpid-server -p <port_number_to_use> -m - <port_number_to_use> - </para><para> - Use this to get round any issues on your host server with port - 5672/8999 being in use/unavailable. - </para><para> - For additional details on what ports the broker uses see <xref linkend="QpidJavaFAQ-Whatportsdoesthebrokeruse"/> FAQ - entry. - For more detailed information on configuration, please see - <xref linkend="qpid_Qpid-Design---Configuration"/> - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-WhatcommandlineoptionscanIpassintotheqpidserverscript-3F"><title> - What command line options can I pass into the qpid-server - script ? - </title> - - <para> - The following command line options are available: - </para> - - <para> - The following options are available: - </para><table> - <title> - Command Line Options - </title> - - <tgroup cols="3"> - <tbody> - <row> - <entry> - Option - </entry> - <entry> - Long Option - </entry> - <entry> - Description - </entry> - </row> - <row> - <entry> - b - </entry> - <entry> - bind - </entry> - <entry> - Bind to the specified address overriding any value in the - config file - </entry> - </row> - <row> - <entry> - c - </entry> - <entry> - config - </entry> - <entry> - Use the given configuration file - </entry> - </row> - <row> - <entry> - h - </entry> - <entry> - help - </entry> - <entry> - Prints list of options - </entry> - </row> - <row> - <entry> - l - </entry> - <entry> - logconfig - </entry> - <entry> - Use the specified log4j.xml file rather than that in the - etc directory - </entry> - </row> - <row> - <entry> - m - </entry> - <entry> - mport - </entry> - <entry> - Specify port to listen on for the JMX Management. Overrides - value in config file - </entry> - </row> - <row> - <entry> - p - </entry> - <entry> - port - </entry> - <entry> - Specify port to listen on. Overrides value in config file - </entry> - </row> - <row> - <entry> - v - </entry> - <entry> - version - </entry> - <entry> - Print version information and exit - </entry> - </row> - <row> - <entry> - w - </entry> - <entry> - logwatch - </entry> - <entry> - Specify interval for checking for logging config changes. - Zero means no checking - </entry> - </row> - </tbody> - </tgroup></table> - </section> - - <section role="h3" id="QpidJavaFAQ-HowdoIauthenticatewiththebroker-3FWhatuserid-26passwordshouldIuse-3F"><title> - How do I authenticate with the broker ? What user id & - password should I use ? - </title> - - <para> - You should login as user guest with password guest - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-HowdoIcreatequeuesthatwillalwaysbeinstantiatedatbrokerstartup-3F"><title> - How do I create queues that will always be instantiated at - broker startup ? - </title> - - <para> - You can configure queues which will be created at broker startup - by tailoring a copy of the virtualhosts.xml file provided in the - installed qpid-version/etc directory. - </para><para> - So, if you're using a queue called 'devqueue' you can ensure that - it is created at startup by using an entry something like this: - </para> - <programlisting> -<virtualhosts> - <default>test</default> - <virtualhost> - <name>test</name> - <test> - <queue> - <name>devqueue</name> - <devqueue> - <exchange>amq.direct</exchange> - <maximumQueueDepth>4235264</maximumQueueDepth> <!-- 4Mb --> - <maximumMessageSize>2117632</maximumMessageSize> <!-- 2Mb --> - <maximumMessageAge>600000</maximumMessageAge> <!-- 10 mins --> - </devqueue> - </queue> - </test> - </virtualhost> -</virtualhosts> -</programlisting> - <para> - Note that the name (in thie example above the name is 'test') - element should match the virtualhost that you're using to create - connections to the broker. This is effectively a namespace used - to prevent queue name clashes etc. You can also see that we've - set the 'test' virtual host to be the default for any connections - which do not specify a virtual host (in the <default> tag). - </para><para> - You can amend the config.xml to point at a different - virtualhosts.xml file by editing the <virtualhosts/> - element. - </para><para> - So, for example, you could tell the broker to use a file in your - home directory by creating a new config.xml file with the - following entry: - </para><para> - <virtualhosts>/home/myhomedir/virtualhosts.xml</virtualhosts> - </para><para> - You can then pass this amended config.xml into the broker at - startup using the -c flag i.e. - qpid-server -c <path>/config.xml - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-HowdoIcreatequeuesatruntime-3F"><title> - How do I - create queues at runtime? - </title> - - <para> - Queues can be dynamically created at runtime by creating a - consumer for them. After they have been created and bound (which - happens automatically when a JMS Consumer is created) a publisher - can send messages to them. - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-HowdoItunethebroker-3F"><title> - How do I tune - the broker? - </title> - - <para> - There are a number of tuning options available, please see the - <xref linkend="How-to-Tune-M3-Java-Broker-Performance"/> page for more information. - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-Wheredoundeliverablemessagesendup-3F"><title> - Where do - undeliverable messages end up ? - </title> - - <para> - At present, messages with an invalid routing key will be returned - to the sender. If you register an exception listener for your - publisher (easiest to do by making your publisher implement the - ExceptionListener interface and coding the onException method) - you'll see that you end up in onException in this case. You can - expect to be catching a subclass of - org.apache.qpid.AMQUndeliveredException. - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-CanIconfigurethenameoftheQpidbrokerlogfileatruntime-3F"><title> - Can I configure the name of the Qpid broker log file at - runtime ? - </title> - - <para> - If you simply start the Qpid broker using the default - configuration, then the log file is written to - $QPID_WORK/log/qpid.log - </para><para> - This is not ideal if you want to run several instances from one - install, or acrhive logs to a shared drive from several hosts. - </para><para> - To make life easier, there are two optional ways to configure the - naming convention used for the broker log. - </para> - - <section role="h4" id="QpidJavaFAQ-Settingaprefixorsuffix"><title> - Setting a prefix - or suffix - </title> - - <para> - Users should set the following environment variables before - running qpid-server: - </para><para> - QPID_LOG_PREFIX - will prefix the log file name with the - specified value e.g. if you set this value to be the name of your - host (for example) it could look something like host123qpid.log - </para><para> - QPID_LOG_SUFFIX - will suffix the file name with the specified - value e.g. if you set this value to be the name of your - application (for example) if could look something like - qpidMyApp.log - </para> -<!--h4--></section> - - <section role="h4" id="QpidJavaFAQ-IncludingthePID"><title> - Including the PID - </title> - - <para> - Setting either of these variables to the special value PID will - introduce the process id of the java process into the file name - as a prefix or suffix as specified** - </para> -<!--h4--></section> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-Myclientapplicationappearstohavehung-3F"><title> - My - client application appears to have hung? - </title> - - <para> - The client code currently has various timeouts scattered - throughout the code. These can cause your client to appear like - it has hung when it is actually waiting for the timeout ot - compelete. One example is when the broker becomes non-responsive, - the client code has a hard coded 2 minute timeout that it will - wait when closing a connection. These timeouts need to be - consolidated and exposed. see <xref linkend="qpid_QPID-429"/> - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-HowdoIcontacttheQpidteam-3F"><title> - How do I - contact the Qpid team ? - </title> - - <para> - For general questions, please subscribe to the - <ulink url="mailto:users@qpid.apache.org">users@qpid.apache.org</ulink> mailing list. - </para><para> - For development questions, please subscribe to the - <ulink url="mailto:dev@qpid.apache.org">dev@qpid.apache.org</ulink> mailing list. - </para><para> - More details on these lists are available on our <xref linkend="qpid_Mailing-Lists"/> - page. - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-HowcanIchangeauser-27spasswordwhilethebrokerisup-3F"><title> - How can I change a user's password while the broker is up ? - </title> - - <para> - You can do this via the <xref linkend="qpid_Qpid-JMX-Management-Console"/>. To - do this simply log in to the management console as an admin user - (you need to have created an admin account in the - jmxremote.access file first) and then select the 'UserManagement' - mbean. Select the user in the table and click the Set Password - button. Alternatively, update the password file and use the - management console to reload the file with the button at the - bottom of the 'UserManagement' view. In both cases, this will - take effect when the user next logs in i.e. will not cause them - to be disconnected if they are already connected. - </para><para> - For more information on the Management Console please see our - <xref linkend="Qpid-JMX-Management-Console-User-Guide"/> - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-HowdoIknowifthereisaconsumerforamessageIamgoingtosend-3F"><title> - How do I know if there is a consumer for a message I am going - to send? - </title> - - <para> - Knowing that there is a consumer for a message is quite tricky. - That said using the qpid.jms.Session#createProducer with - immediate and mandatory set to true will get you part of the way - there. - </para><para> - If you are publishing to a well known queue then immediate will - let you know if there is any consumer able to pre-fetch that - message at the time you send it. If not it will be returned to - you on your connection listener. - </para><para> - If you are sending to a queue that the consumer creates then the - mandatory flag will let you know if they have not yet created - that queue. - </para><para> - These flags will not be able to tell you if the consuming - application has received the message and is able to process it. - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-HowcanIinspectthecontentsofmyMessageStore-3F"><title> - How - can I inspect the contents of my MessageStore? - </title> - - <para> - The management console can be used to interogate an active - broker and browse the contents of a queue.See the <xref linkend="qpid_Qpid-JMX-Management-Console"/> - page for further details. - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-Whyaremytransientmessagesbeingsoslow-3F"><title> - Why are - my transient messages being so slow? - </title> - - <para> - You should check that you aren't sending persistent messages, - this is the default. If you want to send transient messages you - must explicitly set this option when instantiating your - MessageProducer or on the send() method. - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-Whydoesmyproducerfillupthebrokerwithmessages-3F"><title> - Why - does my producer fill up the broker with messages? - </title> - - <para> - Switch on producer flow control to prevent temporary spikes in - message production over-filling the broker. - - Of course, if the long-term rate of message production exceeds - the rate of message - consumption then that is an architectural problem that can only - be temporarily mitigated by producer flow control. - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-ThebrokerkeepsthrowinganOutOfMemoryexception-3F"><title> - The - broker keeps throwing an OutOfMemory exception? - </title> - - <para> - The broker can no longer store any more messages in memory. This - is particular evident if you are using the MemoryMessageStore. To - alleviate this issue you should ensure that your clients are - consuming all the messages from the broker. - </para><para> - You may also want to increase the memory allowance to the broker - though this will only delay the exception if you are publishing - messages faster than you are consuming. See <xref linkend="qpid_Java-Environment-Variables"/> for - details of changing the memory settings. - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-WhyamIgettingabrokersideexceptionwhenItrytopublishtoaqueueoratopic-3F"><title> - Why am I getting a broker side exception when I try to - publish to a queue or a topic ? - </title> - - <para> - If you get a stack trace like this when you try to publish, then - you may have typo'd the exchange type in your queue or topic - declaration. Open your virtualhosts.xml and check that the - </para> - <programlisting> -<exchange>amq.direct</exchange> -</programlisting> - - <programlisting> -2009-01-12 15:26:27,957 ERROR [pool-11-thread-2] protocol.AMQMinaProtocolSession (AMQMinaProtocolSession.java:365) - Unexpected exception while processing frame. Closing connection. -java.lang.NullPointerException - at org.apache.qpid.server.security.access.PrincipalPermissions.authorise(PrincipalPermissions.java:398) - at org.apache.qpid.server.security.access.plugins.SimpleXML.authorise(SimpleXML.java:302) - at org.apache.qpid.server.handler.QueueBindHandler.methodReceived(QueueBindHandler.java:111) - at org.apache.qpid.server.handler.ServerMethodDispatcherImpl.dispatchQueueBind(ServerMethodDispatcherImpl.java:498) - at org.apache.qpid.framing.amqp_8_0.QueueBindBodyImpl.execute(QueueBindBodyImpl.java:167) - at org.apache.qpid.server.state.AMQStateManager.methodReceived(AMQStateManager.java:204) - at org.apache.qpid.server.protocol.AMQMinaProtocolSession.methodFrameReceived(AMQMinaProtocolSession.java:295) - at org.apache.qpid.framing.AMQMethodBodyImpl.handle(AMQMethodBodyImpl.java:93) - at org.apache.qpid.server.protocol.AMQMinaProtocolSession.frameReceived(AMQMinaProtocolSession.java:235) - at org.apache.qpid.server.protocol.AMQMinaProtocolSession.dataBlockReceived(AMQMinaProtocolSession.java:191) - at org.apache.qpid.server.protocol.AMQPFastProtocolHandler.messageReceived(AMQPFastProtocolHandler.java:244) - at org.apache.mina.common.support.AbstractIoFilterChain$TailFilter.messageReceived(AbstractIoFilterChain.java:703) - at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362) - at org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:54) - at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800) - at org.apache.qpid.pool.PoolingFilter.messageReceived(PoolingFilter.java:371) - at org.apache.mina.filter.ReferenceCountingIoFilter.messageReceived(ReferenceCountingIoFilter.java:96) - at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362) - at org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:54) - at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800) - at org.apache.mina.filter.codec.support.SimpleProtocolDecoderOutput.flush(SimpleProtocolDecoderOutput.java:60) - at org.apache.mina.filter.codec.QpidProtocolCodecFilter.messageReceived(QpidProtocolCodecFilter.java:174) - at org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived(AbstractIoFilterChain.java:362) - at org.apache.mina.common.support.AbstractIoFilterChain.access$1200(AbstractIoFilterChain.java:54) - at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived(AbstractIoFilterChain.java:800) - at org.apache.qpid.pool.Event$ReceivedEvent.process(Event.java:86) - at org.apache.qpid.pool.Job.processAll(Job.java:110) - at org.apache.qpid.pool.Job.run(Job.java:149) - at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) - at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) - at java.lang.Thread.run(Thread.java:619) -</programlisting> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-WhyistherealotofAnonymousIoServicethreads"><title> - Why - is there a lot of AnonymousIoService threads - </title> - - <para> - These threads are part of the thread pool used by Mina to process - the socket. In the future we may provide tuning guidelines but at - this point we have seen no performance implications from the - current configuration. As the threads are part of a pool they - should remain inactive until required. - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ--22unabletocertifytheprovidedSSLcertificateusingthecurrentSSLtruststore-22whenconnectingtheManagementConsoletothebroker."><title> - "unable to certify the provided SSL certificate using the - current SSL trust store" when connecting the Management Console - to the broker. - </title> - - <para> - You have not configured the console's SSL trust store properly, - see <xref linkend="qpid_Management-Console-Security"/> for - more details. - </para> -<!--h3--></section> - - <section role="h3" id="QpidJavaFAQ-CanauseTCPKEEPALIVEorAMQPheartbeatingtokeepmyconnectionopen-3F"><title> - Can a use TCP_KEEPALIVE or AMQP heartbeating to keep my - connection open? - </title> - - <para> - See <xref linkend="qpid_Configure-Broker-and-Client-Heartbeating"/> - </para> - -<!--h3--></section> -<!--h2--></section> - - - -</section> |