Kaazing WebSocket Gateway - JMS Edition Release Notes

This document describes what's new and supported in the Kaazing WebSocket Gateway - JMS Edition Release 4.0.

Patch Release Changes

This section lists the changes that were made in each of the Kaazing WebSocket Gateway - JMS Edition 4.0 patch releases.

Patch Release 4.0.9

The following changes were made in patch release 4.0.9:

  • Issue ID: gateway#25 - Fixed an issue in Application Negotiate where an authorized client might receive a 404 on a cookie request.
  • Issue ID: jms#12 - Fixed an issue in Enterprise Shield where a temporary network packet loss could cause some Enterprise Shield configurations to fail or leak connections.
  • Issue ID: gateway.server#38, gateway.server#41 - Fixed an issue where a Cross-site constraint prevented access to a service via WebSocket emulation.
  • Issue ID: jms#9 - Fixed an issue where a NullPointerException could be thrown while processing unsubscribe messages when a session is closed abruptly from the client.
  • Issue ID: gateway.server#22 - Fixed an issue where a WebSocket emulated connection could fail unexpectedly when attempting to authenticate or authorize improperly via Basic or Negotiate.
  • Issue ID: gateway.server#16 - Fixed an issue where a WebSocket connection with idle upstream could be dropped while long polling.
  • OOM with Gateway 4.0.8 that causes 100% CPU and eventual shutdown #18 - Fixed an memory issue with management and monitoring where summary notification data was collected indefinitely until received by a monitoring client.
  • Javascript error alert in Command Center #11 - Fixed an issue in command center where invalid CSS was throwing an error when a kerberos5.proxy service was configured in the Gateway.
Patch Release 4.0.7

The following changes were made in patch release 4.0.7:

  • (KG-15153) Fixed an issue where messages with more than 16 properties caused intermittent disconnections.
  • (KG-15068) Fixed an issue where a durable subscription still appeared active after the client disconnected.
  • (KG-15033, KG-14997) Fixed an issue where Android JMS clients reported a duplicate subscription ID error when reconnecting.
  • (KG-14980) Fixed an issue where JMS clients received a 403 error during the WebSocket handshake due to proxy intermediaries not forwarding the Upgrade header.
  • (KG-14975, KG-14952, KG-14754) Fixed an issue where the Gateway would return a 403 error code for services where the <realm> was specified but an <authorization-constraint> was not.
  • (KG-14776, KG-14743) Fixed an issue where the JMS .NET client could leak connections when authentication was enabled and there were large numbers of messages.
  • (KG-14765) Fixed an issue in the documentation where the JMS service property maximum.pending.acknowledgments was misspelled. See maximum.pending.acknowledgments for more information.
  • (KG-14679) Updated the description of Last Value Cache in the documentation.
  • (KG-14648) Updated the configuration for <consumer.strategy>. See the documentation for more information.
  • (KG-14477) Fixed an issue where the JmsAuthorizationFactory and the JmsUserIdentityResolver were not always getting the Subject's Principals.
  • (KG-14460) Fixed an issue where a proxy intermediary that decrypted and re-encrypted connections did not emulate correctly.
  • (KG-14555) Updated the KAAZING JMS .NET client library so it is now signed with a strong name.
  • (KG-14304) Reduced memory usage to increase performance.
  • (KG-14138) Fixed an issue where multiple services using secure connections could throw the following exception: java.security.cert.CertificateException: <ssl.ciphers>[]</ssl.ciphers> value for ssl://HOST:PORT does not match <ssl.ciphers>[DEFAULT]</ssl.ciphers> also configured for ssl://HOST:PORT on same transport tcp://IPADDRESS:PORT.
  • (KG-14034) Fixed an issue with Last Value Cache where an exception was thrown: JMSException: Subscription ID not found.
  • (KG-14033) Fixed an issue with Last Value Cache where cached messages may be redelivered if the cache size is set to 1.
  • (KG-13651) Fixed an issue with Last Value Cache where messages may not be replayed properly when some messages in the cache were expired.
  • The following known issue was found in patch release 4.0.7:

    • (KG-14839) Last value cache may not work for wildcard topic subscriptions with the VMware vFabric RabbitMQ JMS client version 3.0.5 due to a bug in that version of the client library. The bug is that messages received from a wildcard topic subscription do not have the JMSDestination property set correctly. It is fixed in version 3.0.6 and higher according to http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2013-December/032521.html.
Patch Release 4.0.6

The following changes were made in patch release 4.0.6:

  • (KG-14136) Fixed an issue with IBM WebSphereMQ and other JMS-compliant message brokers where subscriptions to a very large number of different topics on the Gateway in a short time frame could be processed very slowly. This issue does not affect Apache ActiveMQ or TIBCO EMS.

    If you are using a JMS-compliant message broker other than Apache ActiveMQ, IBM WebSphereMQ, or TIBCO EMS in this scenario, you may have the option to improve performance by specifying the following setting in the <properties> element of the jms service in the Gateway configuration:
    <consumer.strategy>
    com.kaazing.gateway.jms.server.service.jms.handler.strategies.OptimizedConsumerStrategy
    </consumer.strategy>

    Warning: This configuration may not be compatible with your JMS-compliant message broker and should be fully tested before deploying in production environments.

  • (KG-14088) Disabled default usage of SSL v2 and SSL v3. They can explicitly be enabled using the <ssl.protocols> configuration. For example: <ssl.protocols>SSLv3, TLSv1.1 <ssl.protocols> means the Gateway will only accept only SSLv3 or TLSv1.1 formats.
    For earlier versions of Kaazing WebSocket Gateway, SSL can be explicitly disabled using <ssl.ciphers>. For example, <ssl.ciphers>!SSLv3, ...<ssl.ciphers> will not allow SSLv3 connections, but will accept others that have been specified.
  • (KG-14003) Fixed an issue with Objective-C (iOS) clients where they could crash with a SIGABRT ABORT.
  • (KG-13851) Fixed an issue where using Enterprise Shield™ with prepared connections failed to release connections after they closed.
  • (KG-13845) Fixed an issue where using SOCKS on ports higher than 32,000 would fail.
  • (KG-13840) Fixed an issue where the Gateway was throwing a NullPointerException when processing error conditions for temporary destinations, causing clients to stop receiving messages.
  • (KG-13683) Fixed an issue where the Objective-C (iOS) client ChallengeHandler was not being invoked during continuous authorization.
  • (KG-13670) Fixed an issue where setting http.proxyHost while connected to a WSS service could give a NullPointerException.
  • (KG-13660) Fixed an issue in JavaScript clients to address critical errors during Fortify scans.
  • (KG-13638) Changed invocation of JMSAuthorizationFactory to occur at each authorization-timeout interval.
  • (KG-13621) Fixed an issue where creating large numbers of MessageConsumers prior to calling start() caused disconnects.
  • (KG-13610, KG-13676) Fixed an issue where creating a large number of consumers prior to starting the connection could cause ConcurrentModificationExceptions to be thrown.
  • (KG-13588) Fixed an issue where a Java client closing too many connections at once would cause a deadlock.
  • (KG-13538) Updated the Kaazing .NET client library so that it is now signed. See Checklist: Build Microsoft .NET and Silverlight Clients Using Kaazing WebSocket Gateway for more information.
  • (KG-13489) Fixed an issue where Enterprise Shield configuration could give a ClassCastException.
  • (KG-13452) Fixed a known issue with Objective-C (iOS) clients where 64-bit architectures were not supported.
  • (KG-13450) Fixed an issue where the connection would fail to close when backgrounding an Objective-C (iOS) application using APNs.
  • (KG-13401) Updated the Kaazing WebSocket Gateway JMS Client Libraries: Supported APIs list with methods that are not supported on KMBytesMessage in the Kaazing Objective-C (iOS) client.
  • (KG-13379) Added HttpRedirectPolicy to the Kaazing JavaScript client. See Setting and Overriding HttpRedirectPolicy Defaults on the WebSocketFactory.
  • (KG-13316) Fixed an issue where garbage collection could increase message latency while management services were enabled.
  • (KG-13145) Fixed an issue where .NET clients were unable to connect and create a durable subscriber.
  • (KG-13079) Fixed an issue where APNs mobile notifications didn't send if ws.inactivity.timeout was set.
  • (KG-13070) Fixed an issue where Android versions earlier than 4.4 would delay new connections.
  • (KG-13016) Upgraded the packaged version of Apache ActiveMQ from 5.5.1 to 5.10.0. The default Gateway configuration, demo services, and packaged demos now use ActiveMQ 5.10.0, as well. To use a different version of ActiveMQ, see the documentation topic Integrate Apache ActiveMQ.
  • (KG-12963) Fixed an issue a network interruption could cause Objective-C (iOS) clients to crash.
  • (KG-12869) Fixed an issue where localizing and customizing the APNs notification payload cause the payload to not be sent.
  • (KG-12857) Fixed an issue where a memory leak caused garbage collection cycles.
  • (KG-12820) Fixed the Secure Your Flash Client documentation to explain loading the necessary DefaultBasicChallengeHandler when using a BasicChallengeHandler.
  • (KG-12775) Fixed the Objective-C (iOS) demo to correctly import the WebSocket header file.
  • (KG-12685) Fixed an issue that writes a friendly message to the log file when the maximum number of licensed connections are reached, instead of throwing an exception.
  • (KG-12671) Updated the configuration documentation for the jms.proxy service when used for clustering. See Set Up Kaazing WebSocket Gateway as a Load Balancer for more information.
  • (KG-12663) Fixed an issue where connections may drop for .NET clients when authentication is enabled in the Gateway.
  • (KG-12655) Fixed an issue where the JVM took extra time to exit when shutting down the Gateway.
  • (KG-12574) Updated Objective-C (iOS) APNs-related demo code for managing suspend and resume of background applications.
  • (KG-12412) Fixed an out of memory issue when the Gateway is idle for long periods.
  • (KG-12379) Fixed an issue on Objective-C (iOS) clients where the KMMessageProperty would continuously grow, leading to a memory leak.
  • (KG-12355) Fixed an issue where instantiating javax.naming.InitialContext and specifying JmsInitialContextFactory in the jndi.properties file would cause a StackOverflowError.
  • (KG-12164, KG-13636) Fixed an issue that caused "Subscription ID not found" errors on the client.
  • (KG-12078) Fixed an issue where last value cache would fail when using Apache ActiveMQ 5.9.1.
  • (KG-12022) Fixed an issue where the Gateway would occasionally log ClassCastExceptions with management enabled.
  • (KG-11926) Fixed an issue where some JMX MBeans were not exposed unless a remote client connection was active.
  • (KG-11889) Fixed an issue with durable subscribers which could cause a crash in TIBCO EMS or lost messages when a durable subscriber is closed and then re-created, and happens to be serviced by the Gateway on a different JMS connection to TIBCO EMS.
  • (KG-11290, KG-11859) Fixed a partial memory leak.
  • (KG-11143) Fixed related issues causing memory leaks on Objective-C (iOS) clients.
  • (KG-10769, KG-10813) Fixed a variety of connectivity and acknowledgement issues where network is unreliable.
  • (KG-10588) Fixed an issue where the Gateway would not always balance to some cluster members after Gateway failure.
  • (KG-10369) Fixed an issue where connections to the Gateway may fail for services using SSL, issuing a warning that says, "Available certificate aliases is null", and throwing a SSLHandshakeException. This occurred in conjunction with using the bind feature in the <accept-options>.
  • (KG-10199) Fixed an issue where the Server-Sent Events JavaScript failed to establish a connection in Internet Explorer 8 and 9.
  • (KG-9943) Fixed an issue where the balancer and balanced services could have the same URL.
  • (KG-9181) Fixed an issue in the JavaScript client where running the client in IE10 while the document mode was set to IE9 could trigger the client to use long polling.
  • (KG-8921) Fixed an issue where the .NET client could not send payloads larger than 256MB.
  • (KG-3423) Fixed an issue where the installer may fail on Linux due to not recognizing the installed JDK.

The following known issues were found in patch release 4.0.6:

  • (KG-11881) The authenticationScheme property of a ChallengeRequest object may incorrectly contain whitespace in Kaazing clients. As a workaround, be sure to trim the property before using it.
  • (KG-11071) The following clients support Delta messaging: Android, Java, and JavaScript. The following clients do not yet support Delta Messaging: Objective-C (iOS), .NET, Silverlight, and Flash.
  • (KG-11065) The following Kaazing clients support WebsocketFactory: JavaScript, Java, Android, and Objective-C (iOS), as described in the related developer documentation. The following Kaazing clients do not yet support WebsocketFactory: .NET, Silverlight, and Flash.
Patch Release 4.0.5

The following changes were made in patch release 4.0.5:

  • (KG-10808) Fixed an issue where a "Message not delivered" exception from Tibjms.recoverMsg caused a duplicate durable subscriber exception when client reconnected.
  • (KG-10767) Fixed an issue in the .NET client where it could falsely report "Message acknowledgement did not receive receipt" even though an acknowledgement was received after reconnecting.
  • (KG-10740) Fixed a security-related issue.
  • (KG-10619 and KG-10559) Fixed an issue in the .NET and Java clients where the client was incorrectly setting expiration on messages via setJMSExpiration().
  • (KG-10611 and KG-10627) Fixed an issue with the .NET, JavaScript, Java, and Flash clients where pending messages may not have been delivered if the connection is lost and restored.
  • (KG-10545) Fixed a known issue where continuous authorization does not renew after a timeout when connecting 3.x clients to a 4.x Gateway.
  • (KG-10528) Fixed an issue where clients making a wildcard subscription that matched the wildcard Gateway configuration didn't always receive last value cache messages.
  • (KG-10526) Fixed an issue where you may get a BumpException or ConnectionDisconnectedException with multiple subscriptions to a topic configured for last value cache.
  • (KG-10378) Fixed an issue where message flow could stop for durable subscriptions delivered on unreliable networks.
  • (KG-9846) Fixed an issue where inbound messages from Flash client were skipped during session recovery.
  • (KG-9531) Fixed an issue where you may get a "received message acknowledgment with unrecognized message id" when using a temporary queue.
  • (KG-8122) Fixed an issue where you may get a NullPointerException when a TextMessage property is null.
  • (KG-5357) Fixed an issue where an InstanceAlreadyExistsException is thrown when a Gateway with services in the DMZ is connected using Enterprise Shield while JMX is enabled.
  • (KG-4072) Fixed an issue where the cluster name (the <name> property in the <cluster> element) must be kzha. You can now choose your own name for the cluster name.

The following are known issues found in patch release 4.0.5:

  • (KG-10916) Messages between a DMZ and an internal gateway may not be received after loss of connectivity.
  • (KG-10369) SSL configuration may fail when bind feature is used as an accept-option with the warning "Available certificate aliases is null" caused by SSLHandshakeException. As a workaround, remove any explicit binds from the Gateway configuration.
Patch Release 4.0.4

The following changes were made in patch release 4.0.4:

  • (KG-10251) Updated the Integrating with JMS-Compliant Brokers documentation topics with specific requirements for each broker on setting up static and dynamic destinations.
  • (KG-9989) Fixed an issue where multiple services configured for Enterprise Shield™ on the same SOCKS port may give a startup exception.
  • (KG-9983) Fixed an issue where <ssl.encryption> could not be specified in <connect-options>.

The following are known issues found in patch release 4.0.4:

  • (KG-10545) Re-authorization does not continue to authorize when connecting 3.x clients to a 4.x Gateway. To work around this issue, migrate your 3.x clients to 4.x. See Upgrade Kaazing WebSocket Gateway for more information.
  • (KG-10256) Last value cache bootstrap gives a ConnectionDisconnectedException error.
  • (KG-10237) When using last value cache, you must provide settings for a durable connection to the JMS-compliant message broker in order to bootstrap the cache, even if you are not bootstrapping the last value cache. See the documentation for Last Value Cache for more information on the settings.
  • (KG-9391) Last value cache is not currently supported for subscriptions that use a message selector.

What's New in this Release

To find out what's new in this release, see the Kaazing WebSocket Gateway - JMS Edition product page.

Download, Installation, and License Information

You can download or install Kaazing WebSocket Gateway from Kaazing Downloads. See Setting Up Kaazing WebSocket Gateway for help downloading and getting started with Kaazing WebSocket Gateway in your environment.

Note: Licenses for versions of Kaazing WebSocket Gateway prior to Release 4.x (including Kaazing WebSocket Gateway - JMS Edition 3.x and Kaazing WebSocket Gateway 9.06) will not work for this release. Please contact Kaazing Sales to update your license.

Kaazing WebSocket Gateway is available under a conventional enterprise license and also as a cloud-service license. Please contact Kaazing Sales for more information about obtaining a license.

Applying a Kaazing WebSocket Gateway License

Once you have obtained your license file, perform the following steps:

  1. If the Gateway is running, stop it. For information on installing, starting, and stopping the Gateway, see Setting Up Kaazing WebSocket Gateway.
  2. Navigate to GATEWAY_HOME/license.
  3. If a license file already exists, delete it.
  4. Place the new license file in the directory.
  5. Start the Gateway. In the Gateway startup log, you should see the line: INFO Found license: primary contact name, company name, email address, which indicates that the new license has been applied.

Kaazing WebSocket Gateway Cluster Licenses

The allowed services and connection counts of each cluster member are the sum total of the allowed services and connection counts of all cluster members. When the Gateway starts and reads license information, all license files in the GATEWAY_HOME/license directory are read. Each license file is cumulative in terms of allowed services and connection counts. When the Gateway joins a cluster as a new member, its licenses are published to all cluster members and its allowed services and connection counts are propagated to all members. Additionally, the connection counts and allowed services of the other members in the cluster are added to the new member.

System Requirements

For system requirements, see the README.txt file, which is also located in the GATEWAY_HOME directory where you unpacked the Kaazing WebSocket Gateway distribution. For example: C:\kaazing\kaazing-websocket-gateway-jms-version_number.

Kaazing JMS Client Libraries

Browser Support

The following browser versions are supported in Kaazing WebSocket Gateway - JMS Edition 4.0.

Browser
Supported Versions
Apple Safari
5.1+(1)
Google Chrome
Current
Microsoft Internet Explorer
7.0+, 8.0+, 9.0+, 10.0+, and 11.0+
Mozilla Firefox
Current
Opera
Current

1 The Gateway does not support Safari on Windows.

Mobile Browser Support

The following mobile browser platforms are supported in Kaazing WebSocket Gateway - JMS Edition 4.0.

Mobile Platform / Browser
Browser
iOS 7.0+ and 8.0+
(on iPad, iPhone, and iPod)
Safari
Android 2.2, 2.3, 3.0, 3.1, 3.2 and 4.0+
Default
Windows RT
Internet Explorer 10.0+

Known Issues Common to All Kaazing Clients

The following known issues are common to all client libraries for Kaazing WebSocket Gateway - JMS Edition 4.0. Additional information for specific client libraries is available in the Kaazing JMS Client Libraries section.

(KG-12563) Clients might need to acknowledge each queue or durable subscriber message

If you are using a JMS provider other than Apache ActiveMQ or TIBCO Enterprise Message Service™, you must ensure your client applications acknowledge each message received from a queue or durable subscriber. Otherwise, the client will receive only one message from that queue or durable subscriber.

(KG-5959) Message Selectors are not supported when using Informatica UM (Ultra Messaging)

When using message selectors with Informatica UM, the server will log a warning to the error log stating "Message selectors do not currently work properly with this JMS provider." Specifically, if more than one message selector is in use on one topic, including by multiple users, then the message selectors may have no effect.

(KG-5921) MapMessage is not supported when using Informatica UM (Ultra Messaging)

When trying to send a MapMessage to Informatica UM, the client will receive an error message.

(KG-211) HTTP Pipelining Conflict in Firefox

Summary: By default, HTTP Pipelining is disabled in Firefox; if you have not changed this setting, this may not cause an issue. However, if HTTP Pipelining is turned on in Firefox, note that HTTP pipelining in Firefox is incompatible with serving HTML pages from the Gateway when using the directory service in the gateway-config.xml.

Workaround: You can work around this conflict by turning off pipelining. To do so, enter about:config in the Firefox address field, then search for network.http.pipelining and set this attribute to false.

Kaazing JavaScript JMS Client Library

This section includes information about the JavaScript JMS client libraries available in Kaazing WebSocket Gateway. To learn how to add JavaScript to your web application and enable communication with a JMS-compliant message broker through the Gateway, see Checklist: Build JavaScript Clients with Kaazing WebSocket Gateway.

Show the JavaScript JMS client library support and known issues.

The Kaazing JavaScript JMS client library supports Apache Cordova. To learn more, see Walkthrough: Deploy a JavaScript JMS Web App as a Hybrid iOS App and Walkthrough: Deploy a JavaScript JMS Web App as a Hybrid Android App.

The following table summarizes the current JavaScript client library support:

Operating System/Browser
IE11 IE10 IE9 IE8 IE7 Firefox current Safari 5+ Chrome current Opera current
Windows RT
N/A N/A N/A N/A N/A N/A N/A
Windows 8
N/A
Windows 7
N/A
Windows Vista
N/A N/A
Macintosh OS 10.4.11+ (Intel-based)
N/A N/A N/A N/A N/A

Known Issues for JavaScript JMS Clients

There are no known issues for JavaScript JMS clients.

Kaazing Objective-C (iOS) JMS Client Library

This section includes information about the Objective-C (iOS) JMS client libraries available in Kaazing WebSocket Gateway. To learn how to build an Objective-C (iOS) application and enable communication with a JMS-compliant message broker through the Gateway, see Checklist: Build Objective-C (iOS) Clients with Kaazing WebSocket Gateway.

Show the Objective-C (iOS) JMS client library support and known issues.

Kaazing Objective-C (iOS) client libraries are supported on iOS 5.1+, 6.0+, 7.0+, and 8.0+. For more information on Xcode, iOS, iOS SDK, iOS Simulator support, see the Xcode Versions compare table on Wikipedia.

Known Issues for Objective-C (iOS) JMS Clients

There are no known issues for Objective-C (iOS) clients.

Kaazing Android JMS Client Library

This section includes information about the Android JMS client libraries available in Kaazing WebSocket Gateway. To learn how to build an Android application and enable communication with a JMS-compliant message broker through the Gateway, see Checklist: Build Android Clients with Kaazing WebSocket Gateway.

Show the Android JMS client library support and known issues.

Kaazing Android client libraries are supported on Android platform 2.3.3 (API Level 10) or higher.

Known Issues for Android JMS Clients

There are no known issues.

Kaazing Hybrid Client Libraries (iOS, Android, PhoneGap)

This section includes information about the hybrid JMS client libraries available in Kaazing WebSocket Gateway. To learn how to build a hybrid client and enable communication with a JMS-compliant message broker through the Gateway, see Walkthrough: Deploy a JavaScript JMS App as a Hybrid iOS App, Walkthrough: Deploy a JavaScript JMS App as a Hybrid Android App.

Show the hybrid client library support and known issues.

The following software items are the minimum requirements for Kaazing hybrid client library development:

Known Issues for Hybrid JMS Clients

There are no known issues.

Kaazing Flash JMS Client Library

This section includes information about the Flash JMS client libraries available in Kaazing WebSocket Gateway. To learn how to enable your Flash application to communicate with any JMS-compliant message broker, see Checklist: How to Build Flash Clients Using Kaazing WebSocket Gateway.

Show the Flash JMS client library support and known issues.

The following table summarizes the current Flash client library support:

Operating System/Browser
IE11 IE10 IE9 IE8 IE7 Firefox current Safari 5+ Chrome current Opera current
Windows RT
N/A N/A N/A N/A N/A N/A N/A N/A N/A
Windows 8
N/A
Windows 7
N/A
Windows Vista
N/A N/A
Macintosh OS 10.4.11+ (Intel-based)
N/A N/A N/A N/A N/A

Known Issues for Flash JMS Clients

There are no known issues.

Kaazing .NET and Silverlight JMS Client Libraries

The following sections describe the Microsoft .NET and Silverlight clients available in Kaazing WebSocket Gateway - JMS Edition. To learn how to build a .NET or Silverlight JMS client, which you can then incorporate into your .NET or Silverlight application to enable communication with a back-end server through the Gateway, see Checklist: Build Microsoft .NET and Silverlight Clients Using Kaazing WebSocket Gateway.

Show the Kaazing .NET JMS client library support and known issues.

Kaazing .NET JMS Client Library

If you are building Microsoft .NET clients, you must use Microsoft .NET Framework 4 with Microsoft .NET Framework 4 Patch KB2468871 (download the patch from http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=3556).

The following table summarizes the current .NET JMS client library support:

Operating System
Support
Windows RT
Windows 8
Windows 7
Windows Vista
Macintosh OS 10.4.11+ (Intel-based)
No OS support

Known Issues for Kaazing .NET JMS Clients

The following are known issues for Kaazing .NET JMS clients:

(KG-1849) Microsoft Silverlight and .NET Multithreading

Summary: The Kaazing JMS client libraries for Silverlight and .NET fire events on multiple threads for better performance. Therefore, events are delivered on a thread other than the UI thread. This requires you to explicitly transfer execution to the UI thread when updating the UI from dispatched events. This technique varies slightly between Silverlight and .NET Framework applications as described in Checklist: How to Build Microsoft .NET and Silverlight Clients Using Kaazing WebSocket Gateway.

(KG-1850) Delay to the Initial Connection Request from the Kaazing .NET JMS Client

Summary: The Kaazing .NET Client initial WebSocket connection request may be delayed by several seconds due to automatic proxy detection in Microsoft Windows.

Workaround: To address this, if using Internet Explorer, choose Options > Connections tab > LAN Settings. Clear the Automatically Detect Settings checkbox and, if necessary, specify the proxy settings. In .NET applications, you can bypass the proxy settings by including the line System.Net.WebRequest.DefaultWebProxy = null; before the client initiates the WebSocket connection. If your application requires a proxy, change the null value in this line to the default proxy or follow these instructions.

(KG-1851) Two Connection Limit in Kaazing JMS Clients for Microsoft .NET

Summary: For any Microsoft .NET application that uses more than one WebSocket connection at a time, the Microsoft .NET 4.0 Framework has a maximum connection limit of two per domain, similar to the browser limitation.

Workaround: Because Kaazing JMS clients for Microsoft .NET may use multiple connections simultaneously, you must either ensure that any WebSocket connection is closed by using WebSocket.Close() before opening another WebSocket connection, or increase the connection limit on the application by updating the maxconnection attribute in the app.config file. See MSDN for more information about the application configuration file and its attributes and elements. Alternatively, you can increase the global System.Net.ServicePointManager.DefaultConnectionLimit property.

Both the maxconnection attribute and the System.Net.ServicePointManager.DefaultConnectionLimit property should be set to be twice (2 times) the number of WebSocket connections required to ensure bidirectional communication when emulation is used, since emulation requires an upstream connection and a downstream connection. For more information, see MSDN and stackoverflow (tuning connection limits per application in the app.config XML file).

(KG-15060) Error when deploying a .NET or Silverlight JMS client to Android from Xamarin on a virtual device running Intel Atom CPU/ABI and Android API Level 19

Summary: Deploying a .NET or Silverlight JMS client to Android from Xamarin on a virtual device created with Intel Atom CPU/ABI and Android API Level 19 may cause connection errors. See a similar issue Application fails to deploy to Android Intel emulator on API 19 (Platform 4.4.2) on Stack Overflow.

Workaround: For more stable performance, use a virtual device created with the ARM CPU/ABI instead of the Intel Atom CPU/ABI.

Show the Kaazing Silverlight JMS client library support and known issues.

Kaazing Silverlight JMS Client Library

Currently, the Kaazing Silverlight JMS client library is certified on a limited set of browsers and operating systems. The following table summarizes Kaazing's current Microsoft Silverlight JMS client library support: A summary of the current support follows (the table may change as Microsoft changes Silverlight and desupports operating systems and browsers):

Operating System/Browser
IE11 IE10 IE9 IE8 IE7 Firefox current Safari 5+ Chrome current Opera current
Windows 8
N/A N/A
Windows 7
N/A N/A
Windows Vista
N/A N/A N/A
Macintosh OS 10.4.11+ (Intel-based)
N/A N/A N/A N/A N/A

Known Issues for Silverlight JMS Clients

The following are known issues for Silverlight JMS clients.

(KG-1849) Microsoft Silverlight and .NET Multithreading

Summary: The Kaazing JMS client libraries for Silverlight and .NET fire events on multiple threads for better performance. Therefore, events are delivered on a thread other than the UI thread. This requires you to explicitly transfer execution to the UI thread when updating the UI from dispatched events. This technique varies slightly between Silverlight and .NET Framework applications as described in Checklist: How to Build Microsoft .NET and Silverlight Clients Using Kaazing WebSocket Gateway.

(KG-7114) Silverlight Not Supported by Microsoft on Safari

Summary:When using the Kaazing Silverlight client libraries on Safari for Microsoft Windows, the client may not work properly due to system incompatibility issues. Check the Microsoft Silverlight compatibility chart for more information.

(KG-15060) Error when deploying a .NET or Silverlight JMS client to Android from Xamarin on a virtual device running Intel Atom CPU/ABI and Android API Level 19

Summary: Deploying a .NET or Silverlight JMS client to Android from Xamarin on a virtual device created with Intel Atom CPU/ABI and Android API Level 19 may cause connection errors. See a similar issue Application fails to deploy to Android Intel emulator on API 19 (Platform 4.4.2) on Stack Overflow.

Workaround: For more stable performance, use a virtual device created with the ARM CPU/ABI instead of the Intel Atom CPU/ABI.

Kaazing Java JMS Client Library

This section includes information about the Java JMS client libraries available in Kaazing WebSocket Gateway. To learn how to build a Java JMS client, which you can then incorporate into your Java application to enable communication with a JMS-compliant message broker through the Gateway, see Checklist: How to Build Java Clients with Kaazing WebSocket Gateway.

Show the Java JMS client library support and known issues.

The following table summarizes the current Java client library support:

Operating System/Browser
IE11 IE10 IE9 IE8 IE7 Firefox current Safari 5+ Chrome current Opera current
Windows RT
N/A N/A N/A N/A N/A N/A N/A N/A
Windows 8
N/A
Windows 7
N/A
Windows Vista
N/A N/A
Macintosh OS 10.4.11+ (Intel-based)
N/A N/A N/A N/A N/A

Known Issues for Java JMS Clients

The following is a known issue for Kaazing Java JMS Clients:

(KG-4049) Running Secured Kaazing Java Client Applets using JRE 7

Summary: When using JRE 7 in a browser on Windows, Java applets secured by HTTPS may fail to load with an "invalid JAR file" error message, and connections to WebSocket services secured by WebSocket secure may not succeed. This issue is caused by a bug in Java.

Workaround: To ensure that secured Java applets running JRE 7 in a browser can load via HTTPS and connect to secured services over WebSocket secure (wss), open your Java Control panel, navigate to the Security/General section, then click the Advanced tab. On the Advanced tab, enable the "Use TLS 1.0," "Use TLS 1.1," and "Use TLS 1.2" options.

Miscellaneous API Changes

For information on API changes, see Kaazing WebSocket Gateway JMS Client Libraries: Supported APIs.

Namespace Changes

The namespace declarations have changed in this release. Note the use of .com in xmlns.kaazing.com in the namespace declarations. If you used a previous version (3.2.x or earlier) of Kaazing WebSocket Gateway, then starting a later version, such as 3.3.0, automatically generates a new Gateway configuration file called "gateway-config.xml.new" that uses the new namespace. The Gateway automatically uses this new configuration file, unless you revert to using your old file. For more information on starting the Gateway using a specific gateway-config.xml file, see Configure Kaazing WebSocket Gateway.

gateway-config.xml

The namespace for gateway-config.xml appears as shown in line 1:

<gateway-config xmlns="http://xmlns.kaazing.com/2012/09/gateway">
  .
  .
  .
</gateway-config>

jaas-config.xml

The namespace for jaas-config.xml appears as shown in line 1:

<jaas-config xmlns="http://xmlns.kaazing.com/jaas-config/centurion">
  .
  .
  .
</jaas-config>

Known Issues in Kaazing WebSocket Gateway

The following are known issues in Kaazing WebSocket Gateway - JMS Edition 4.0 release:

For issues related to client libraries, see: Kaazing JMS Client Libraries.

(KG-10084) If DNS Resolution Fails for Hostname in Connect Clause, the Gateway Does Not Start

Summary: The Gateway does not start if the DNS resolution fails for a hostname in a connect element. This is a change in behavior from previous releases where this DNS resolution was performed after startup, when a client connected to that service.

Workaround: There is no workaround for this issue.

(KG-10317) Performance Data Does Not Always Display on All Platforms (including Solaris)

Summary: When monitoring the Gateway, some performance data may not display on some platforms, like Solaris.

Workaround: There is no workaround for this issue.

(KG-7045) IBM WebSphere 7.0 Client Library Does Not Behave Correctly when Connected to IBM WebSphere MQ 7.5

Summary: The IBM WebSphere 7.0 client library behaves incorrectly when connected to IBM WebSphere MQ 7.5 while handling subscriptions to multiple destinations.

Workaround: Upgrade to WebSphere MQ client library 7.5 or higher.

(KG-5107) Durable Subscribers Not Currently Supported by Kaazing WebSocket Gateway with Apache ActiveMQ

Summary: The Gateway does not currently support durable subscriptions with Apache ActiveMQ.

Workaround: There is no workaround for this issue.

Deprecated Features

The following features are deprecated from the Gateway configuration. Avoid using a deprecated feature, because a future release may not include it:

  • WebSocket Version: The <ws.version> element has been deprecated. If you are using an existing configuration that includes the <ws.version> element, you can continue to use it. However, if the scheme of the URI inside the connect element is ws:// or wss://, then the WebSocket version defaults to the RFC-6455 standard and there is no need to explicitly set <ws.version> element.
  • Cluster Mode: The cluster <mode> element has been deprecated. See the topic Clustering and Load Balancing Migration for more information.
  • Management: The <management> element and all of its sub-elements have been deprecated. Use the <management.snmp> and <management.jmx> services instead. See the topic Checklist: Monitor Kaazing WebSocket Gateway for more information.
  • The JmsAuthorization SPI no longer includes the canReceiveFromTopic() and canReceiveFromQueue() methods, as they are deprecated. See the JMS Server Security documentation for more information.
  • The stomp.proxy service is deprecated. Its functionality has been integrated into the jms.proxy service. See the topic JMS Services for Kaazing WebSocket Gateway for more information.
  • The stomp.interceptor service is deprecated. Its functionality has been integrated into the jms.proxy service. See the documentation topic JMS Services for Kaazing WebSocket Gateway for more information.
  • The following jms (formerly stomp.jms) service properties are deprecated:
    • topic.maximum.pending.acknowledgments
    • maximum.backlog.messages
    • durable.maximum.backlog.messages
    • queue.maximum.backlog.messages
    • topic.maximum.backlog.messages

    The functionality of these properties can be met using the prefetch properties capabilities of the JMS client libraries.

  • Authorization Constraints: The auth-constraint element from the Gateway configuration has been deprecated in JMS Edition 4.0. Use authorization-constraint instead. See Error Using the auth-constraint Element for more information.
  • Network Address Mapping: The <network> and <address-mapping> elements are now deprecated. Use protocol.bind instead. See Integrate Kaazing WebSocket Gateway into an Internal Network for more information.
  • session Element: The session element and its properties are now deprecated, including:
    • service-domain
    • authentication-scheme
    • authentication-connect
    • realm-name
    • encryption-key-alias
    • inactivity-timeout

    See session for a description of these changes to the Gateway configuration.

Third-Party Software Notice

This product includes software developed by the Hazelcast Project (http://www.hazelcast.com).

Previous Releases

Select your release from the following list to see the associated release notes:

TOP