Knowledgebase
Cumulative Update 4 for Neuron ESB 3.5 (KB354-0531151)
Posted by Marty Wasznicky on 27 May 2016 08:26 PM

Cumulative Update 4 for Neuron ESB 3.5 (KB354-0531151)

Cumulative Update 4 (CU4) for Neuron ESB 3.5 resolves issues that were found in Neuron ESB 3.5 since the software was released. Additionally, several new features are introduced in CU4. This update rollup is highly recommended for all Neuron ESB 3.5 customers. This rollup release can be used to upgrade existing installations of Neuron ESB 3.5.x to Neuron ESB version 3.5.4.993

Released Version CU4 can be applied to:

Neuron ESB builds 3.5.0.4 to 3.5.3.x.

System Requirements:

*This patch requires PowerShell 4.0. Microsoft PowerShell 4.0 can be downloaded and installed from the following location: http://www.microsoft.com/en-us/download/details.aspx?id=40855 

Prior to installation, the NeuronPatch_3.5_CU4.zip file should be extracted to the local file system of the machine running Neuron ESB 3.5. As part of the update process only Neuron ESB files that have changed are backed up to Backup-NeuronESB_3.5_CU4 folder. This folder is listed at the end of the log created when InstallPatch.ps1 is executed. You need to ensure that you have at least 50MB free disk space available plus 30MB for each instance that will be updated. The files for the update requires another 70MB of disk space. If you were updating a single instance, then you will need a total of 150MB. For two instances a total of 180MB.

Fixes Included in CU4:

CU1 fixes and enhancements

http://support.neuronesb.com/index.php?/default_import/Knowledgebase/Article/View/52/15/cumulative-update-1-for-neuron-esb-35-kb351-121114

CU2 fixes and enhancements

http://support.neuronesb.com/index.php?/default_import/Knowledgebase/Article/View/60/15/cumulative-update-2-for-neuron-esb-35-kb351-0226151

QFE31 cluster fixes

http://support.neuronesb.com/index.php?/default_import/Knowledgebase/Article/View/62/15/neuron-esb-35-qfe-31-kb351-031320151

CU3 fixes and enhancements

http://support.neuronesb.com/index.php?/default_import/Knowledgebase/Article/View/67/15/cumulative-update-3-for-neuron-esb-35-kb351-0715151

Neuron ESB Samples

FIX – Custom Process Steps – Several resource files were missing from the samples shipped in CU4 which prevented the samples from working. These have been added back in.

Neuron ESB Solution Storage

MOD – Save Configuration – In previous releases, Neuron ESB would store the contents of the repository files as both xml files in their respective sub directories within the solution folder structure, as well as raw data in the esb_configuration.xml file, essentially duplicating the data storage. Neuron ESB was also duplicating the Zone data within the esb_configuration.xml file as well as in its respective Zone xml file within the solution folder structure. This would cause issues when editing Zone settings as sometimes they would not overwrite the settings in the esb_configuration.xml file. At runtime the Zone settings in the esb_configuration.xml file would be used, rather than those in the Zone xml file. Lastly, we were also storing the Administrator Role credentials (encrypted) in the esb_configuration.xml, rather than as encrypted XML files in a “Administrators” sub folder. With this release, once a user saves a change in an existing solution, Neuron ESB will move all the Administrator Role accounts from the esb_configuration.xml to the “Administrators” sub folder. The save process will also remove all the redundant repository document data from the esb_configuration.xml, leaving only the repository metadata. Lastly, the save process will also remove the Zone data from the esb_configuration.xml.

FIX – Save Configuration – Unhandled Exception could occur when clicking the Save button on the Neuron ESB Explorer Toolbar. This has been corrected.

FIX - XSLT Document Load Issue - When Loading the XSLT document from the Neuron ESB Repository, special Markup characters like carriage returns, etc., are not rendered in the final displayed XSLT or executed XSLT.

FIX – Swagger Document Load Issue – If a Swagger document was opened in a previous solution, it would not close correctly when opening a different solution and would remain visible if a user navigated back to the Swagger Document Repository. 

Business Processes

FIX – Service Endpoint Process Step – The Service Endpoint could fail to throw an exception if a Fault Message was received and the process step’s “Throw exception on fault” property was set to true, if a previous execution of the process step threw an exception.

FIX – Execute Process Process Step – if using the Context.State dictionary within a process called by the Execute Process Process Step to maintain state between executions of the called process, the state would not be maintained between executions.

MOD – Execute Process Process Step – When declaring a value for the “ESB Solution Source” property (used to tell Neuron that the process to execute is located in a different solution other than the existing one open), Neuron was making a full copy of the remote configuration for each process instance in the pool. Now it only reads the Business Processes from the remote configuration, rather than reading and decrypting ALL Neuron ESB entities, like Topics, Endpoints, Workflows, etc.

FIX – Execute Process Process Step - When declaring a value for the “ESB Solution Source” property (used to tell Neuron that the process to execute is located in a different solution other than the existing one open), under high concurrent load, Neuron ESB would report at least one of the following exceptions:

System.NullReferenceException: Object reference not set to an instance of an object

This would be followed by many Pool Timeout exceptions. This was because we could have competing threads all trying to create copies of the remote configuration, which entailed file deadlocking. This has been corrected. Only one global remote configuration object is created now for all process instances to be created from.

FIX – Execute Process Process Step – This could throw the following exception during concurrent execution as in the case of being hosted in a Client Connector when processing many concurrent calls:

Exception Type: System.ArgumentException

Exception Message: The key already existed in the dictionary

NEW – Execute Process Process Step – This has been modified to use a Blocking pool of processes to allow better scale out for concurrency and to eliminate all calls being serialized through one process. There are now 2 new properties located in the “Pool Management” property category. Maximum Instances (defaults to 100) and Pool Timeout (defaults to 1 minute).  Once the maximum number of pipeline instances have been created, the Pool Timeout determines the amount of time to wait for an existing pipeline instance to become available before throwing a timeout exception.

  

NEW – Event Source access – within a Business Process users can check the direction of execution they are within. For example, users may want to do something specific if a Business Process is running on the On Publish event of a message versus the On Receive event. This can be accessed using the following C# within a Process Step:

if(context.EventSource == ExecuteEvent.OnReceive)

{

// if receiving ...do something

}

 

FIX – Adapter Endpoint Process Step - A null exception could occur due to a race condition.

FIX – Referencing External Assemblies - If there is a custom assembly referenced at the process level, but that assembly is later deleted from the machine, the code step referencing that assembly will still “think” it exists and not throw any compilation errors during editing.  If the assembly reference is removed from the process level assembly reference collection, the code editor will start throwing compilation errors again (users have to get the editor to recompile the code after removing the reference, which can be done by changing anything in the code for the step). This has been corrected so that the code editor will detect the missing assembly and display the appropriate compilation errors

FIX - Adapter Endpoint Process Step – this can now be tested at design time within the Business Process Designer.

MOD – We finally removed all references to the old text based properties we used to use to access SOAP and HTTP context properties before we added the HTTP and SOAP API on ESB Message.  Specifically, the "MessageHeader", "MessageProperty_HttpRequest" and "MessageProperty_HttpResponse" property prefixes have all been removed. These were deprecated several years ago. Typical uses for these would be within a C# Process Step.  Here is an example of how they were used:

context.Data.SetProperty("MessageProperty_HttpRequest","Method","POST");

context.Data.SetProperty("MessageProperty_HttpRequest","Content-Type","application/xml");

context.Data.SetProperty("MessageProperty_HttpResponse", "Location", "");

context.Data.SetProperty("MessageProperty_HttpResponse", "StatusCode","200");

context.Data.SetProperty("MessageProperty_HttpResponse", "StatusDescription","great");

context.Data.SetProperty("MessageHeader", "LocalPath","/path");

 

Here’s how this same information should be set/retrieved using the HTTP and SOAP API:

context.Data.Http.Method = "POST";

context.Data.Http.Headers.ContentType = "application/xml";

context.Data.Http.Headers.Location = "";

context.Data.Http.StatusCode = System.Net.HttpStatusCode.OK;

context.Data.Http.StatusDescription = "great";

context.Data.LocalPath = "/path";

 

Developers should use something like Notepad++ to search the Processes directory of their solution for all places where either the "MessageHeader", "MessageProperty_HttpRequest" or "MessageProperty_HttpResponse" text properties are being referenced and replace them with the appropriate API.

NEW - Audit Process step - This has been modified to use a Blocking pool of proxies to allow better scale out for concurrency and to eliminate all calls being serialized through one proxy. There are now 2 new properties located in the “Pool Management” property category. Maximum Instances (defaults to 1) and Pool Timeout (defaults to 1 minute).  When set to 1, the Audit Process Step will operate as in previous versions, using the default Audit Proxy at the Topic level. Once the maximum number of instances have been created, the Pool Timeout determines the amount of time to wait for an existing proxy to become available before throwing a timeout exception.

 

MOD - Adapter Endpoint Process Step - There are now 2 new properties located in the “Pool Management” property category. Maximum Instances (defaults to 100) and Pool Timeout (defaults to 1 minute).  Once the maximum number of instances have been created, the Pool Timeout determines the amount of time to wait for an existing proxy to become available before throwing a timeout exception.

 

NEW - Logging – A new logging level flag has been added to the Process Designer. This allows developers, if writing custom tracing statements, to first check the runtime logging level so that the compiler doesn’t unnecessarily create strings at runtime. For example, in the Business Process Designer within a C# activity custom logging could look like this now:

if(context.Instance.IsDebugEnabled)

  context.Instance.TraceInformation("only run this statement if 'Verbose' logging is enabled");

if(context.Instance.IsInfoEnabled)

  context.Instance.TraceInformation("only run this statement if 'Info' logging is enabled");

if(context.Instance.IsWarningEnabled)

  context.Instance.TraceInformation("only run this statement if 'Warning' logging is enabled");

if(context.Instance.IsErrorEnabled)

  context.Instance.TraceInformation("only run this statement if 'Errors' logging is enabled");

 

All logging statements will be written to the Neuron ESB log files.

MOD - Adapter Endpoint Process Step – Removed the internal retries based on policy that we previously did.  This makes it consistent with the Adapter Endpoint Workflow Activity. If users require retries, this can be easily accomplished by enclosing the process step within the Retry Process Step.

NEW - Service Endpoint Process Step – This has been modified to use a Blocking pool of proxies to allow better scale out for concurrency and to eliminate all calls being serialized through one proxy. There are now 2 new properties located in the “Pool Management” property category. Maximum Instances (defaults to 100) and Pool Timeout (defaults to 1 minute).  Once the maximum number of instances have been created, the Pool Timeout determines the amount of time to wait for an existing proxy to become available before throwing a timeout exception.

 

FIX – Audit Process Step - fixed issue where audit service would report SqlDateTime overflow i.e. “Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM”, if testing the Audit Process Step for first time in designer. Subsequent tests would succeed.

NEW - Service Endpoint Process Step – Users can dynamically set the name of the Service Connector to execute at runtime by modifying the Service header of the ESB message like so:

        context.Data.Header.Service = "myServiceConnector";

FIX - ODBC Process Step - when running in a for loop under stress the following error may occur:

Exception Type: System.NullReferenceException
Exception Message: Object reference not set to an instance of an object.

Adapters

FIX – SQL Service Broker - When and “END CONVERSATION” message is being processed The following error could be thrown if multiple result sets was not enabled on the connection string:

Exception: The SQL Service Broker adapter endpoint, ‘N’, encountered an error while publishing to the bus. There is already an open DataReader associated with this Command which must be closed first.

Inner Exception: There is already an open DataReader associated with this Command which must be closed first.

Method: ValidateConnectionForExecute

FIX – MQSeries Adapter – When setting the MQ Format property to “NONE”, the property would show an empty string. This has been corrected.

 

FIX - SMTP Adapter – When sending file attachments, the name of the file in the email received would display the full file path and name of the attachment. Now it will just display the original filename minus the original path. Also, when sending non XML messages as the body, an invalid root error could be thrown when attempting to resolve custom properties via XPATH.

NEW - MQSeries Adapter – Extended logging has been added. Also, if a publish fails, the adapter will attempt to log the message to the Neuron Audit database.

NEW - Adapter Framework – Added logging levels to the Adapter Framework base class so that adapter writers can check the logging level before creating their strings i.e.

if (base.IsDebugEnabled)

                    RaiseAdapterInfo(ErrorLevel.Verbose, "hi there");

FIX - NetSuite Adapter – Fixed memory leak detected under concurrent load.

FIX - Salesforce Adapter – Fixed memory leak detected under concurrent load.

FIX – ODBC Adapter – Fixed memory leak detected under concurrent load when executed from an Adapter Endpoint Process Step.

Workflow

FIX – Service Endpoint Workflow Activity – The Service Endpoint could fail to throw an exception if a Fault Message was received and the activity’s “Throw exception on fault” property was set to true, if a previous execution of the activity threw an exception.

FIX – Deserialize Workflow Activities – If a user entered a value for a property in the designer, rather than directly in the Workflow Activity’s property grid, the Workflow Activity would not pick up and user the value. This only affected the “Deserialize from DataContract” and “Deserialize from JSON” Workflow Activities.

MOD – Empty Referenced Assemblies element generates Null Exception on startup – if the ReferencedAssemblies element within the XML file that represents a Workflow Definition contains empty string elements (i.e. <string></string>), a null exception would be generated on startup. An empty string element could occur if the XML files are manually edited. If this occurs, users can open the Neuron Solution within the Neuron ESB Explorer. If empty elements are detected, they will be removed and the user will be notified of the modification via the Changes dialog box. To persist the changes, the user must accept them and save the solution using the Neuron ESB Explorer.

NEW - Service Endpoint Workflow Activity – Users can dynamically set the name of the Service Connector to execute at runtime by modifying the Service header of the ESB message like so:

        message.Header.Service = "myServiceConnector";

FIX - Workflow Endpoints – if a workflow endpoint was disabled but still assigned to an Availability Group, it would still attempt to start and generate a System.ArgumentNullException exeption.

NEW - Logging – A new logging level flag has been added to the Workflow Designer. This allows developers, if writing custom tracing statements, to first check the runtime logging level so that the compiler doesn’t unnecessarily create strings at runtime. For example, in the Workflow Designer within a C# activity custom logging could look like this now:

if(Log.IsDebugEnabled)

  Log.Debug("only run this statement if 'Verbose' logging is enabled");

if(Log.IsInfoEnabled)

  Log.Info("only run this statement if 'Info' logging is enabled");

if(Log.IsWarningEnabled)

  Log.Warning("only run this statement if 'Warning' logging is enabled");

if(Log.IsErrorEnabled)

  Log.Error("only run this statement if 'Errors' logging is enabled");

 

All logging statements will be written to the Neuron ESB log files.

FIX - Workflow Persistence Delay Activity – When a persistent delay workflow activity completes, Quartz.Net could throw the following exception:

“An error occurred while attempting to delete a job when the PersistentDelay activity completed: Unable to unschedule trigger”

Service Endpoints

FIX - Client Connectors – for SOAP messages, the message would not always be set to non-binary. This has been corrected.

FIX - REST Service endpoints – Buffer Size and Max Buffer Pool Size are not being set to their default properties internally. Previously these were being set to too high a value which could result in leaked memory over time. Also, REST service endpoints will now use the Maximum Message Size parameter from the UI.

NEW – Service Endpoints – Added support for users who want to use the Microsoft WCF WebHttpBinding with Neuron Client and Service Connectors. If a custom binding is created with that name, Neuron ESB will recognize it and use it. This can be used as an alternative to the built in Neuron ESB REST binding.

MOD - Client Connector - Changed from Single to PerCAll mode. Also fixed issues with service endpoints that route to SOAP where endpoint has capture http headers enabled. When they received a message that came from a REST call where HTTP headers were enabled, content type and get methods would kill the call.  Lastly, faulted events with the host are captured and logged appropriately.

Neuron ESB Runtime

MOD – Adapter/Service Policy Retries – When using Transactional MSMQ as a Topic Transport, the following error could be reported in the Neuron ESB log file and Event log:

System.ServiceModel.FaultException: The transaction under which this method call was executing was asynchronously aborted.

This was happening within our Global Exception Handler for WCF and occurred when Neuron ESB rolled back the underlying Transaction in the course of the Policy execution. This error was erroneous and has now been suppressed.

MOD – Configure Server - Added the ability to view the default .NET thread values when opening configure server dialog within the Neuron ESB Explorer. This dialog allows the user to override the existing .NET thread pool values to accommodate burst load scenarios. The default values are listed in greyed out text to the right of the editable text boxes as shown in the figure below:

 

MOD – Startup time – Solutions that have hundreds of endpoints should start up significantly faster now, anywhere from 50% or more.

MOD – Adapter Endpoint Performance Enhancements – In previous releases of Neuron ESB, message traffic received by Adapter Endpoints was always serialized to support ordered delivery.  In this release, we’ve added a new “Pool Size” property located on the general tab of the Adapter Endpoints screen within the Neuron ESB Explorer (see below)

 

If this property is set to a default of 1, the behavior will be consistent with previous builds of Neuron ESB, essentially serializing all calls to the Adapter Endpoint. The pool size number indicates the maximum number of adapter instances that Neuron ESB “could” create under the covers to process messages.  For example, if the Pool Size was set to 250, but Neuron ESB was only sending in a few hundred request/sec, more than likely only a handful of adapter instances would need to be created to handle the throughput.  In previous builds, normal throughput for an Adapter endpoint was generally limited to a couple of hundred messages per second processed (depending on the adapter). By increasing the Pool Size property, that number can be increased to several thousand messages per second processed. If a Neuron ESB Adapter Endpoint is receiving more messages than the configured Pool Size can service, Neuron ESB will write out warnings in the Neuron Log file of the endpoint alerting users that Neuron ESB is occasionally waiting for an instance to become free to use i.e.

2017-03-26 20:29:24.822-07:00 [4] ALWAYS - ESB Trace Log - Machine:  - Trace level: Error+Warning

2017-03-26 20:29:37.204-07:00 [168] WARN  - Waiting to retrieve 'OdbcQueryEndPoint' adapter endpoint from collection because we've hit our pool size limit.

This is a good indicator that the Pool Size should be raised, or the Adapter Endpoint itself is too long running in its processing of a message.

For example, using a SOAP Client Connector, TCP Topic and an ODBC Adapter in Query mode, (basic Request/Response scenario), a pool size of 50 to 100 allowed the service endpoint to achieve 10+ times the throughput of previous releases, while decreasing the average request/response times.

In a multicast scenario, publishing to a TCP Topic to an ODBC Adapter in Execute mode (inserting a record into a table), using a pool size of 250, we saw up to a 40 times increase in throughput/inserts into the table.

An important note though. This setting will have marginal if any performance impact when messages are received by the Adapter Endpoint either over a Rabbit MQ topic or an MSMQ Topic where the MSMQ Transport is configured for Ordered Delivery.

MOD – Adapter Endpoint Performance Enhancements – A “Processing Threads” property has been added to Adapter Endpoints and accessible either by using an Environmental Variable to set the property (as shown below)

 

Or by manually editing the underlying XML file:

<?xml version="1.0"?>

<ESBEndpoint xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <Id>07dfa54f-a1d1-4405-8063-3a5c17f218cb</Id>

    …

  <PoolSize>250</PoolSize>

  <ProessingThreads>30</ProessingThreads>

</ESBEndpoint>

 

The “Processing Threads” value is 1 by default. This provides the behavior found in previous builds. However, where throughput could not be increased by using the Pool Size property for Ordered Delivery Queued Topics (i.e. Rabbit MQ or MSMQ set for Ordered Delivery), throughput can be substantially increased for these Topics (similar to using the Pool Size property for non-Queued Topics) by raising the value of this property. This property should NOT be used if receiving messages from non-Queued Topics like TCP, Peer or Named Pipes, or if Ordered Delivery of the messages to the adapter endpoint is a requirement. A good example where users may want to set this property to a high value is when receiving messages from a Rabbit MQ Topic as Rabbit MQ only supports ordered delivery of messages.

FIX - Auditing Service – Previously in our debug tracing, we were not logging the action date.

FIX – ESB Message Cloning – When an ESB message was cloned, the LocalPath property was not being copied to the new message

FIX - Runtime Optimizations – Several resource optimizations around string creation and memory usage have been implemented.

FIX – Management Thread – The management thread at the Party level could be aborted by an exception from an asynchronous thread. If the management thread, it could also create an orphan lock that could prevent either the Neuron ESB runtime and the Workflow engine from shutting down. The orphan lock has been corrected and management routine has been moved to a timer.

FIX – Audit Service – Added new locking mechanisms to increase throughput and concurrency and to eliminate deadlocking that could occur under high concurrency load.

FIX - Memory Leaks – While under sustained load, there were several memory leaks discovered using Service endpoints and some adapters, specifically the ODBC adapter. There were also some detected when using the Service Endpoint and Adapter Endpoint process steps. These have been fixed.

MOD – Master Service, refactored the GetMachineName() so that issues with it can be logged to neuron log files and that it raises exceptions that can be caught and logged. Added the logging of additional information to the master log on startup, regardless of the log level now. Specifically, whether or not the MSMQ and MSDTC were installed, what the service account is set to, port sharing, Neuron ESB Instance name, computer memory, # of CPUs, OS, whether neuron or OS is 64 bit and what the true NETBIOS name is.

MOD – Master Service – We no longer are writing out the whole stack trace if we can't delete a temp file.  Now just writing our error message.

FIX – Unable to Assign Port when Port Sharing is enabled - Previously, users could see errors like the following even if Port Sharing was enabled: 

Availability Group: Workflow Order Process Host

Message:

Workflow Endpoint id 'bffe743c-6a9f-4a9f-80c0-30969eefd2e7' could not be started. System.Exception: Unable to assign the '50011' port to the 'Adapters' TCP based Topic. The given key was not present in the dictionary. ---> System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.

MOD - Configuration Service – Enabled a configuration read lock when reading the configuration.

MOD - Control Service -  Removed unnecessary locks when parties are retrieving the configuration from the service.

MOD – Zone – Server Bindings - Reset the defaults for Max Concurrent Sessions and Max Concurrent Instances to 100. These settings were changed for the MSMQ, TCP, Named Pipes Publishing services as well as for the Server Bindings.  We also reset the Listen Backlog default property from 1000 to 10. As a rule of thumb, Neuron ESB doesn’t utilize sessions unless Reliable Sessions is set to true on the Topic Publishing services that support Reliable sessions or on the Bindings tab of Zone settings. The Binding tab of Zone settings only affects the Neuron ESB internal NON publishing services like Auditing, Control, Configuration and Management services. Out of these, ONLY the Auditing Services is affected by the Max Concurrent Instances and should not be raised above 200 without thorough load testing as this will control how many Instances remain in memory and will consume resources.

FIX – Audit Service – This was hard coded with a 5-minute command time out. Now this will use the command timeout configured for the Neuron Audit database.

MOD - Audit Service - Changed from Single to PerCAll mode to better handle concurrency and scale. This effectively uses the Max Concurrent Instances setting located in the Zone settings on the Bindings tab. This setting should not be raised above 200 without thorough load testing spanning several hours.

Monitoring and Logging

FIX - Logging – Logging has been modified. Now, All Warnings and Errors will be reported in both the Neuron ESB log files and the Neuron ESB Windows Event Log. ONLY Verbose and Info logging will be recorded in the Neuron ESB log files. Also, all logging formats have been normalized. An example of the format follows:

string.Format(

CultureInfo.CurrentCulture,

"{0:yyyy-MM-dd HH:mm:ss.fffzzz} [{1}] {2} - {3}",

DateTime.Now,

Thread.CurrentThread.Name ?? Thread.CurrentThread.ManagedThreadId.ToString(CultureInfo.InvariantCulture),

InfoLevel,

message);

In previously releases, this was inconsistently applied. In some areas we would be writing errors and warning to either the Event log or the Neuron ESB log files, but not to both.

FIX – Logging – Reset the ESBHost.exe.config file to only log warning and errors to the event log via log4net filter.

FIX – Adapter/Service Policy Retries – Logging has been enhanced and standardized.

FIX – Logging under Run As – When using the “Run As” feature to run an Adapter Endpoint under a specific set of credentials, if the Adapter Endpoint generated errors and warnings may fail to write to the Event Log, though they would be recorded to the underlying Neuron ESB Log file. This has been corrected.

FIX - Endpoint Health Reporting – Fixed some issues found where the WMI counter was not getting incremented properly under certain conditions when errors and warning detected. This was also happening in the Rabbit MQ publishing service.

FIX – Recycling Endpoints during Shutdown causes error – If an Endpoint was changed and saved and the ESB Service was shut down at nearly the same time, the following exception could occur:

Exception: Value cannot be null.

Parameter name: The Adapter endpoint 'OdbcQueryEndPoint' could not be found in the endpoint tracking collection.

Transports

MOD – MSMQ Transport – Previously the Neuron ESB Dead Letter and Poison Queue handlers were configured as singletons. They have been changed to Per Call.

FIX – MSMQ Transport Network Properties – If the “Use Policy for Retries” property was configured, the "Receive Error Handling" and "Enable Poison Message Processing" properties were still visible. Also, if a policy was selected, the Time to Live property could be reset to an incorrect minimal value. This has been corrected so that it will be set to 100 * the expiration period defined in the policy. This can be overridden by the user.

FIX – Rabbit MQ - If the same party instance is used across multiple client connectors, the instances could randomly receive the wrong reply destined for a different party instance. For example, if there were 2 client connectors using the same party, the user would experience a timeout on every other request call. This is due to the fact that there is only one physical queue representing a Party. Additional correlation has been added to prevent this behavior.

FIX – Rabbit MQ – Under load, Rabbit MQ could fault with an exception reported similar to the following:

Unexpected Shutdown event from Rabbit MQ consumer for 'PlayaPub' Party. Initiating source = Library; Reply Code = 541; Reason = Unexpected Exception

This was due to a bug in the Rabbit MQ client version 3.5.6 stack.  In the Rabbit MQ server’s log file, the following would be noted related to heart beat failures:

ERROR REPORT==== 6-Mar-2017::17:35:43 ===

closing AMQP connection <0.16885.134> ([::1]:59819 -> [::1]:5672):

missed heartbeats from client, timeout: 60s

Rabbit MQ fixed this in later releases of their client API. Neuron ESB has been updated to use the 4.1.3 Rabbit MQ Client Library.

FIX - Rabbit MQ Topic Transport – An error would be reported if a change was made and saved in the Neuron ESB Explorer indicating that the active deployment group could not be found. Although, harmless, this has been fixed.

MOD – TCP channel – When a party which is associated with a TCP topic starts up, it will look for an available client side port that the TCP publishing service can use to send it messages. Previously we would write out the stack trace for search when we called the FindAvailablePort() method. Now we will only write out the message in the Neuron ESB log files. Users will see this in any endpoint log when in Verbose mode.

FIX – Rabbit MQ channel – this would throw an asynchronous thread error when being disconnected, which in turn would abort the management back thread routine and cause an orphaned lock. Locking has been refactored to eliminate a deadlock that could occur when using the underlying connection object. Lastly, we were not serializing the ESB Message’s Localpath property.

FIX – MSMQ Channel – Refactored this to be thread safe when used via a Publish Process Step within a Client Connector under high concurrent load. Previously, this could fail with Null exceptions and blocking. Also, several performance optimizations were made.

FIX – TCP/Named Pipes channel – Refactored locking to eliminate an Object Disposed exception that could occur when under high load.

Neuron 3.5.4.920

Neuron ESB Runtime

 

MOD – Clear Temp Files – On startup, the ESB Service will attempt to clear out temp files. If an error occurs, a warning will be logged indicating that a file within the temp directory could not be deleted. This has been modified to record the error message that was encountered during the delete attempt

FIX – Runtime Memory Fixes – At runtime memory could gradually increase when endpoints are recycled within Endpoint Health if those endpoints were hosting specific Process Steps.

MOD – Active Sessions/Connections to Database – Optimization have been made to reduce the number of active sessions/connections that Neuron ESB maintains against its database when connection pooling is enabled. Previously we were maintaining a separate connection pool, and hence a connection in that pool for every endpoint that was configured for Single Instance mode. This has been changed to use the connection pool of the central server. Also, we recommend that the “Load Balance Timeout” connection string setting for the Neuron ESB database be changed from the default of 0 to 120 seconds to ensure that connections that have not been used are removed from the pool.

FIX – Adapter Endpoint Process Step – Timeout Exceptions and Inconsistent reply messages received when processing concurrent requests under load – When using the Adapter Endpoint Process Step within a Process assigned to a Client Connector, Timeout Exceptions may occur as well as delivery of the wrong reply message to the calling thread if the Client Connector is processing concurrent requests under load. This was due to how the Adapter Endpoint managed the synchronization context for the reply messages it would return to the hosted Business Process.  This has been corrected.

FIX – Availability Group would fail to Start – if Port Sharing was enabled, the Availability Group could fail to startup with an Instance is Null exception.

Service Endpoints

MOD – Client Connector Logging – Regardless of the logging level selected, Neuron ESB would always log the following informational message in the Neuron ESB log file for the Client Connector for every message processed:

ESBService.exe   Information        0             SecureResponseDispatcher.BeforeSendReply - Setting the httpResponse header to 'Server'         2017-02-02 23:06:51Z

This behavior has been modified to only log when the logging level is set to Verbose.

Business Process Designer

FIX – Business Process Designer Disable Indicators – Within the Business Process Designer users can disable/enable every Process Step. When disabled, the process step would change color to a gradient grey. However, this did not previously work for the Exception, For, ForEach, While, Retry and Transaction Process Steps. If these steps were previously disabled, there would be no visual indicator. Also, disabling/enabling the individual Try/Catch/Finally blocks within the Exception block was not supported. These have been corrected.

FIX – Business Process Designer Memory Leak – if using the Business Process Designer to continually test in design mode, some of the process steps could leak memory. This has been corrected.

MOD – ODBC Process Step - Added support for setting parameters to NULL in the ODBC Process Step. This is accomplished with a new attribute on the Parameter element (query and execute) or Field element (batch) called nillable. When you set this to true and then set the value to "null", the column will be set to null. Also added support for setting DBNull or String.Empty as the default value in the parameter mapper.

FIX – Service Endpoint Process Step- Previously when an exception/fault occurred, the response message was set to the original request message. This has been modified so that the response message will contain the exception/fault information.

FIX – Service Endpoint Process Step – SOAP and REST and Policy Compliance – When using policy with the Process Step, the "Throw Exception on Fault" property will only work with SOAP-based services. REST-based services will only throw an exception when the REST tab configuration in the service policy is violated.

Adapters

FIX – FTP/STP Adapter – Timestamp Comparison feature - The following error: "Error converting data type varchar to datetime" could occur in certain localized environments because we were passing a datetime value in an ambiguous format to SQL server. Also, if more than one adapter endpoint was configured to use this feature, either one could return the others files.

FIX – Publish Mode Adapters – In publish mode, if “Error On Polling” property was set to “StopPollingOnError”, for any of the listed adapters, the adapter instance was not cleaning up its resources correctly. The affected adapters were the following:

  • SQL Service Broker
  • Active Directory
  • Azure Service Bus
  • File
  • FTP/SFTP
  • MqSeries
  • Microsoft Exchange
  • MSMQ
  • ODBC
  • POP3
  • Salesforce

FIX - File adapter – An out of memory exception could occur if the file adapter, in publish mode, is continually called against a network share that is unavailable. Eventually an out of memory exception occurs as described in the following support article: https://support.microsoft.com/en-us/kb/3152158 

FIX – Salesforce Adapter - The following error "adapter endpoint faulted. An invalid request URI was provided. The request URI must either be an absolute URI or BaseAddress must be set." May occur.

MOD – TCP Socket Adapter – A timer has been added to the socket adapters, configured for one-minute intervals, that will send ping messages across the socket. This is intended to make the socket appear to be alive during low-traffic periods so that the socket connection will not dropped by intermediaries between the two servers. This is used to support Neuron ESB-to-Neuron ESB scenarios with a DMZ between the servers.

Neuron ESB Explorer

MOD – Updated Neuron ESB Help CHM and Samples – The Neuron ESB shipped samples have been updated as well as the Neuron ESB Help CHM documentation has been updated to included augmented Adapter and sample documentation.

Workflow Designer

FIX – Service Endpoint Workflow Activity- Previously when an exception/fault occurred, the response message was set to the original request message. This has been modified so that the response message will contain the exception/fault information.

FIX – Service Endpoint Workflow Activity – SOAP and REST and Policy Compliance – When using policy with the Process Step, the "Throw Exception on Fault" property will only work with SOAP-based services. REST-based services will only throw an exception when the REST tab configuration in the service policy is violated.

Neuron 3.5.4.875

Neuron ESB Service

MOD – Clearing of Temp Files – Neuron ESB generates temp files on start up. On startup, Neuron ESB would attempt to clear out the service account’s TEMP directory of files previously generated by Neuron ESB. If this failed, Neuron ESB would continue to startup but would not report why the TEMP directory clean up failed. If the TEMP directory was filled, preventing Neuron ESB service from starting, there would be an indication in the Event log only. This behavior has been modified to write a warning to the Neuron logs if clearing the TEMP directory failed. Also, if the TEMP directory is filled, preventing from starting up, we’ll attempt to write the reason within the Neuron ESB master log file. Lastly, Neuron ESB will attempt to clear out its temp files every hour during runtime operation.

Adapters

MOD – MQSeries Adapter – Added 3 new custom properties that are populated on Publish mode. Specifically, we now capture the inbound server name, Queue Manager name and Queue name, i.e.

var serverName = context.Data.GetProperty("wmq","ServerName");

var qManagerName = context.Data.GetProperty("wmq","QueueManager");

var queueName = context.Data.GetProperty("wmq","Queue");

FIX – Socket Adapter – SSL would not correctly after Microsoft released the following patch: https://support.microsoft.com/en-us/kb/3155464 to address an existing vulnerability in the Microsoft implementation of SSL/TLS

FIX – Socket Adapter – When managing communication between internal and DMZ traffic using the Client and Server Socket adapter, the following error may be encountered:
The Server Socket adapter endpoint, ‘N’, encountered an error while sending message to client socket: The message cannot be sent to the TCP socket because the socket has been closed. ---> NeuronEsb.Adapters.Socket.SocketClosedException: The message cannot be sent to the TCP socket because the socket has been closed. 

MOD – SMTP Adapter - When attaching files via file path, the full path and file name would be used as the visible attachment name (with non-valid chars replaced by underscores) rather than the filename minus the path.

MOD – SFTP Adapter – If the SFTP server was configured to auto delete downloaded files, the adapter would fail to publish the message. It would instead log the message to the Failed Message database and throw a file does not exist error. The behavior has been modified to accommodate servers that are configured to auto delete.

MOD – CRM 2011 Plugin – The plugin would throw an error if the FETCHXML activity returned an empty result set. This has been modified. Now the empty result set will be returned.

MOD – ODBC Adapter - Added support for setting parameters to NULL in the ODBC adapter. This is accomplished with a new attribute on the Parameter element (query and execute) or Field element (batch) called nillable. When you set this to true and then set the value to "null", the column will be set to null.

Neuron 3.5.4.860 

Neuron ESB Explorer

FIX- Database Update – Neuron ESB would only present the user with the message that the database needed to be updated, it did not present and log what version it found in the database, and what version the installation required though.

Monitoring

FIX – Endpoint Health – In some circumstances if a failure occurred within the heartbeat of an endpoint, the endpoint may still be reported as Started in endpoint health, even though the heartbeat timestamp would remain unchanged.

Workflow Activities

MOD – Service Endpoint - Fixed issue for service endpoint step/activity where it wouldn't throw an exception when a SOAP fault is returned as the body of the message if the “Throw Exception on Fault” was set to true. Previously it only threw an exception if the outbound call threw a Fault Exception.

Neuron ESB Service

FIX – Single Instance Support - If an endpoint was marked as single instance, on startup Neuron ESB would not log either way whether the endpoint would be started or not started. Now, if the endpoint is eligible to start, Neuron ESB will log a verbose message. If the endpoint will not be started because another endpoint is active on another machine, a warning message will now be logged.

There could be a case where another machine could start up an Active Instance, however, the previously active machine would still register as Started in Endpoint Health. If Heartbeat failures occurred, the failing active instance may not have been stopped correctly.

If the secondary server detected that the current active instance on another server became stale, it may not take ownership and start up an active instance if the endpoint was a Service Connector.

FIX – Logging on Startup – Extra logging has been added to capture exceptions in the Neuron log file if an error occurred on startup.

FIX - Availability Group - High Availability/Failover - When Running an Availability Group on more than one machine, and using the Failover feature of Availability Group, the Availability Group could at times run on both Primary and Failover Machine both.

 FIX - Availability Group - High Availability/Failover - When running an Availability Group on more than two Machines, where MachineX and MachineY are Marked as Primary and MachineZ is marked as failover, MachineZ would only monitor one of the primary machines for failover. If the other Machine which was not monitored failed, MachineZ would fail to detect the event.

FIX - Availability Group - High Availability/Failover – If after an Availability Group starts up on a Failover machine a user tried to manually restart the Availability Group on a primary server, the Availability Group would end up running on both primary and failover server.

 Business Processes

FIX – Auditing – When testing the Audit Process Step within the Business Process on a machine that is NON US localized, a SqlDateTime overflow exception could occur, preventing the message from being audited

MOD – JSON - Modified the remove namespace function so that the JSON Newtonsoft namespaces and attributes are not removed so that they can be used to further control serialization. For example, this allows users to embed Newtonsoft directives to control the serialization of elements into arrays i.e.

<person xmlns:json='http://james.newtonking.com/projects/json' id='1'>

<name>John</name>

<url>http://www.google.com</url>

<role json:Array='true'>Admin</role>

</person>

MOD – Service Endpoint - Fixed issue for service endpoint step/activity where it wouldn't throw an exception when a SOAP fault is returned as the body of the message if the “Throw Exception on Fault” was set to true. Previously it only threw an exception if the outbound call threw a Fault Exception.

FIX – Split/Join Process Step – Added right click “Edit Code” context menu for Join section which will bring up code editor.

FIX – Code Editors – If uses opened the Code Editors exposed by some Process Steps via the Ellipsis Button in the property grid, any code entered would not be saved appropriately.

FIX – Split/Join Process Step – When setting the Split section to Code and setting the Async property to True, a cast object exception would be generated. This was a bug introduced with the new parallelism features introduced in build 3.5.4.811

Topics

FIX – TCP Topics - Fix for using TCP topics with port sharing and the Client API when hosted in Windows applications.  Previously, this worked when the client API was hosted in non Windows applications (i.e. console applications for example). In Windows applications, like the Neuron ESB Test Client, a delay would be incurred when connecting. The Test Client would later show it was disconnected and then would turn to a Connected state.

Neuron 3.5.4.839

Business Processes

FIX – Routing failure - when either a XSLT transform, JSON, Call service, Table or XML Query or Excel or Property Setter process steps are used on the subscribe side BEFORE the resulting message is published back to the bus, if the originating message was a request, the reply message would not get properly routed back to calling client. This was a breaking change introduced in 12/5/2015.

FIX – Parallel Step - Could throw KeyNotFoundException if any branch had a condition that returned false

FIX – Execute Process Step – If using the Execute Process step in a Client Connector where concurrent users could be executing and the Execute Process step is being set dynamically, the incorrect Process could be executed. Added verbose tracing as well.

FIX – Flat File Parser – When multiple definitions are used by the same party, only the first one if applied. If a publisher has one or more processes with multiple flat file parser steps defined with different column mappings, the engine would only use the first mapping executed. All other instances of the process step will try to use the first mapping, regardless of how they are defined in the UI. Now Neuron ESB will use the name of the Process Step to identify the name of the flat file mapping definition to be executed.

Neuron ESB Explorer

FIX – Rabbit MQ Management - Purge messages in the Neuron ESB Explorer's Rabbit MQ management screen would return an HTTP error if something other than the default '/" was used as the vHost.

Database

FIX – Updated Database Scripts – There were some stored procedures that were being created in the current user’s schema rather than in the dbo.schema

Service Endpoints

FIX - Client Connector – The default timeout for a request/reply call would default to 397 seconds. This has been reset so that it now uses the Request/reply send timeout on the service policy multiplied by the retry factor.

FIX – Null Exception when Shutting down Client Connector – A null exception could occur if shutting down a publishing endpoint while it was still waiting for a reply message. Modified and enhanced logging. When shutting down client connector a null exception could also occur if Neuron attempted to audit the original request message. A null exception could also occur when attempting to resubmit a message directly to a service endpoint.

MOD - HTTP Basic authentication - When a Service Connector makes an initial call to Java-based REST services using Basic Authentication, the Service Connector could return a failure. This could occur because the service being called did not conform to the HTTP Basic Authentication RFC which requires the service to first return a negotiate header which tells the client what type of credentials to send. Now, Neuron ESB will send the Authorization header to the service on the initial call when the REST binding is configured with Transport:Basic.

MOD – Authentication Behaviors – Added verbose tracing output when Client Connectors are configured using either Username, NTLM or Credential based authentication options.

FIX – Swagger Support - If a user switches from SOAP (which exposed WSDL) to REST and chooses to apply Swagger the following error would result:

Could not find a base address that matches scheme http for the endpoint with binding MetadataExchangeHttpBinding. Registered base address schemes are [].

MOD – Policies - Modified the availability timer that controls activating an endpoint based on Policy, so that if an error occurs attempting to start it up based on the schedule, Neuron ESB doesn’t continually attempt to start it in an endless loop. if it fails to start, the state will be set to Failed.

ESB Service

FIX – INFO level Logging – In some cases INFO level tracing would be outputting in the Neuron ESB log files whether or not INFO level logging was configured.

FIX – Memory Leaks – Fixed several memory leaks that could occur on shut down of endpoints or reconfiguration of endpoints and Parties

Adapters

FIX – Socket Adapter – Fix for a performance delay between each message being read from the socket. Also added better exception handling to report that a message could not be sent because the underlying socket was closed.

FIX – Socket Adapter -  When using the Client and Server socket adapters to facilitate cross zone (i.e. DMZ to internal network) communication, any custom properties, HTTP and SOAP properties were not getting forwarded back to the original caller in a request/reply message scenario.

FIX – Metadata Generation with Salesforce Adapter – Oauth properties could be displayed after unchecking Oauth as an option.

MOD – Dynamics XRM Adapter – This now supports Bulk Upload of the SaveCrmRecord. This significantly reduces the number of round trips when sending multiple records to CRM.

FIX – SQL Adapter - An object disposed error would occur when shutting down a non-publish mode SQL Adapter Endpoint.

MOD – Policies - Modified the availability timer that controls activating an endpoint based on Policy, so that if an error occurs attempting to start it up based on the schedule, Neuron ESB doesn’t continually attempt to start it in an endless loop. if it fails to start, the state will be set to Failed.

Topic Transports

FIX - Named pipes and TCP channel - If an error occurred creating the host and that error was NOT an AddressAlreadyInUseException, then the connect process to a TOPIC could end up in an infinite loop.

FIX – TCP Topics - Fixed a bad error message that’s recorded when Neuron ESB can't assign a port when the Topic starts. The topic ID rather than the Topic name was being reported. i.e. System.Exception: Unable to assign the '50011' port to the '8cd30384-fb30-43d9-a50d-6eaea4f050d8' TCP based Topic. The given key was not present in the dictionary.

Neuron 3.5.4.811

Business Processes

NEW – Cancelling a Test in Business Process Designer – This feature has been added. If a user starts a test within the Business Process Designer, the test can now be stopped by clicking the “Stop Debugging” red button on the toolbar. This will work even when using the Split Process Step.

FIX – Split Process Step – Running load through a multi-threaded publisher could cause a null object exception.

FIX – Flat File Wizard – Fixed crash when setting fixed width column width value to a non-integer value.

FIX – Flat File Wizard – When fixed width sample file is smaller than the preview grid - user couldn't set width markers.

FIX – Flat File Wizard - fixed issue with optional field checkbox change on last column not being saved if Finish button clicked after changing value.

NEW -  JSON Process Step - Added the ability to represent elements that have “nil = true” elements as null or empty string outputs. The JSON Process Step also now exposes the JsonSerializerSettings settings, DefaultValueHandling and NullValueHandling.

Services

FIX – HTTP Client Utility – Did not support HTTPS based Urls.

FIX – Service Connector Endpoints - Fixed how we resolve local address and To addresses when dynamically setting the “Addressing.To” property and Localpath property. If the hard coded service address of the service connector URL had a trailing backslash AND both the “Addressing.To” and Localpath were being set dynamically, their values would be placed together without a slash separating them to form the URL.

NEW – Multiple Instance support for dedicated IP addresses – Support has been added for running multiple instances on the same machine, while dedicated unique IP addresses to each instance. There is now a new property on the Binding tab of the Service Endpoint named, “Check HostName Comparison Mode”. Support is disabled by default.

Topic Transports

MOD – Rabbit MQ – The Rabbit MQ Topic transport has been modified to use background rather than foreground threads for IO.

FIX – Rabbit MQ – Fixed concurrency issues that could cause null object exceptions when publishing load from multi-threaded publishers.

FIX – TCP/Named Pipes – An ObjectDisposedException could be reported when shutting down TCP/Named Pipes based topics.

Neuron ESB Workflow

FIX – Port Sharing - If port sharing was enabled and the instance name for Neuron ESB runtime was not "Default", any workflow endpoints would fail to start up with the following error:

Workflow Endpoint '<nameOfEndpoint>' configured using the ‘<nameOfWorkflow>’ Workflow Definition could not be started. Neuron.Esb.ESBException: The Party object failed to connect to the ESB service. The "<nameOfEndpoint>" service could not be started. ---> System.ServiceModel.CommunicationException: Unable to connect to the Neuron Configuration Service at localhost:50000. There was no endpoint listening at net.tcp://localhost:50000/DEFAULT/ESBConfigurationService/ that could accept the message

FIX – Logging Error - Fixed a bad format string error when logging that the workflow host is queuing a workflow commands to the database queue.

FIX – Logging Issues - If a workflow was terminated using the Terminate Workflow Activity, only the reason property would be reported in Neuron logs. Added logging to the Retry step so that the specific failure is written to the Neuron log file. Previously this was only logging a generic message that a child process failed or faulted. Logging for the Publish, Publish Request and Execute Process Workflow Activities were not logging to the Neuron log. If a workflow was aborted the error information was not being logged the Neuron log files.

FIX – Adapter Endpoint Workflow Activity – This was updated to output log messages from the adapter.

NEW – Workflow Tracking - implemented Select All for context menu.

FIX – Workflow Tracking – When querying workflow records and if an error occurred due to database contention, a random error dialog may appear after the primary error dialog gets displayed.

Neuron ESB Service

FIX – Failure to Shutdown – Under certain circumstances, specifically heavy load, when the Neuron ESB Service is being shut down, the Neuron ESB Service and Workflow runtime service may appear to fail to shutdown.

FIX – Memory Leak – If “Use Remote TCP Clients” was enabled in the active Deployment group, SQL Connections could be leaked, causing memory for the Neuron ESB Service to escalate.

FIX – Memory Leak – Fixed a possible memory leak when Auditing Service is used.

FIX – Activity Sessions Reporting - Under heavy load the following error could be reported:

 "Failed to restore session activity state" - SqlError in - 233 Severity 20 - A transport-level error has occurred when receiving results from the server”

Neuron ESB Explorer

FIX – Rabbit MQ Management – A null object exception could be reported in the header of the screen.

MOD – Message Viewer – When viewing the individual messages within the Message History or Failed Message reports using the Message Viewer, the messages will be automatically formatted as the user navigates from one message to the next.

Adapters

NEW – Rabbit MQ Adapter - Added correlation id and content type as configurable properties in subscribe mode.

FIX – Socket Adapter – If invalid data was sent to the adapter by an outside program that maintain a connection to the socket, the adapter would stay in an endless loop waiting for more data. Now, if data stops arriving over the socket, the receive loop will terminate and close the client socket

FIX – Salesforce Adapter -  Fixed error that could occur if multiple threads are attempting to authenticate and return a token at the same time. When this happens occasionally the following error could be reported:

Exception: Exception Type: System.Exception

Exception Message: There was an error while obtaining an OAuth token from Salesforce.com - {"error":"invalid_grant","error_description":"authentication failure"}

MOD – Salesforce Adapter – modified logging

FIX – Salesforce Adapter Timeouts – When using the Salesforce adapter from the Adapter Endpoint Workflow Activity moderate load, Timeout exceptions could occur due to internal deadlocks. Also, if an error did occur, the ESB Message’s HTTP StatusCode, StatusDescription, Content-Length and Content-Type properties were not being properly set.

FIX – Dynamics XRM Adapter - When executing a SetCrmState command, a KeyNotFound error would occur. This is because the underlying response did not contain the ID of the changed entity. Regression error introduced in 3.5.4.

Neuron 3.5.4.777 

Workflow

FIX – Availability Group Failover – If an Availability Group has a primary and failover node configured and the primary node fails, the workflow endpoints would start up and continue processing on the failover node as expected. However, when the primary node was restored, workflow endpoints would begin executing on both nodes, rather than only on the primary node. This has been corrected.

Reporting

FIX – Using Neuron ESB Auditing causes SqlDateTime overflow exception – When attempting to store a date time value in Australian format (e.g. 13/09/2016), the Neuron ESB Auditing service could throw the following exception:

SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.

Neuron ESB Explorer

MOD – ODBC Connection Manager – Users can now select an individual ODBC driver from a dropdown list. When selected, this will enable a load button which can be used to query and load the specific connection string keywords from the selected driver.

Services

FIX - HTTP Client utility in Workflow and Business Process Designers. – If the base path was included in the address entered into the Address bar of the HTTP Client utility, the service endpoint would report an endpoint not found exception, effectively it would be appending the localpath value to the entire service address. Also, spaces either before or after the addresses would cause the service endpoint to be set with an address that appeared to be duplicate appended to one another.

FIX – Datagram Client Connectors – A System.NullReferenceException exception could occur from our dispatcher.

Adapters

FIX – MQSeries Adapter – If an exception occurred during the initial connection to MQSeries, the errors were not being properly propagated to the monitoring system. Also, there could be circumstances where the original invalid state of the MQSeries connection would not be properly reset, causing the same connection error to be reported even though a successful connection could be made.

FIX – NetSuite Adapter – In some cases, if multiple NetSuite adapter endpoint steps are used within the same Business Process all subsequent NetSuite adapter endpoints would inherit the properties of the first adapter endpoint.

FIX – SMTP Adapter – When attempting to use a code step to attach 4 or more files, the SMTP adapter could throw the following exception:

System.ObjectDisposedException: Cannot access a closed file

Topic Transports

FIX - Rabbit MQ monitoring – Under the Deployment- Manage - Rabbitmq section of the Neuron ESB Explorer, the message stats for publishers were not being reported. Also, reporting always assumed the default vhost was configured. If a different vhost was configured this could result in a duplicate key exception being reported. Lastly, incorrect metrics were being reported for subscribers.

FIX - Rabbit MQ monitoring – Under the Endpoint Health monitoring section of the Neuron ESB Explorer, reporting always assumed the default vhost was configured. If a different vhost was configured and used, only the metrics for the default would appear.

Business Processes

NEW – Flat File Wizard – Users can now mark a column as optional within the flat file wizard.

NEW – Flat File Wizard – A new feature has been added that allows users to create flat file definitions without requiring a sample flat file.  This feature is useful when creating definitions for flat files with optional fields or when creating definitions for delimited flat files with quoted fields and the quoted field will contain the delimiter.  For example, using a comma-separated flat file with these three fields:  1234,Neuron,”Neudesic, LLC”.  If you use a sample file with this data, the parser will read that as four fields.  You will instead need to select the new “User Defined” option and manually add the fields:

 

After clicking Next, you can right-click in the Columns box and select “Add” to add the first column:

 

After adding the first column, you can right-click and “Delete”, “Add Before Selected Row” or “Add After Selected Row”:

 

FIX – TableQuery Process Step returns XmlException – When querying a table that has column names that include spaces, the TableQuery Process step could generate the following exception when attempting to serialize the results. Neuron will now replace any spaces in column names with underscores.

System.Xml.XmlException: '>' is an unexpected token. The expected token is '='.

Neuron 3.5.4.762

Adapters

MOD – SFTP Adapter – Using a relative path such as “../../another/home/input” was not previously supported when the Adapter Endpoint was placed in Publish mode. This is now supported for both the Archive folder and SFTP folder paths.

MOD – ODBC Adapter – Previously, when setting the FORXML property to true in publish mode, the ODBC driver used had to be the SQL Server Native Client 11.0. This feature has been extended to now support any ODBC driver for SQL Server.

MOD – ODBC Adapter – ODBC Database Connection Dialog – Drop down box would take a very long time to populate the list of ODBC drivers because we were previously querying each driver for their connection string keyword values that they supported. We no longer do that, hence populating the list of drivers to use is instantaneous now.

Business Processes

NEW – Flat File Wizard – Support to mark columns/fields as optional has been added

Neuron 3.5.4.757 

Adapters

FIX – SFTP Adapter – When configured to poll against some non-compliant SFTP servers, the adapter endpoint may report an error similar to the one below in the Event Log which would stop the adapter:

The current app domain for the '<Name of Endpoint>' endpoint threw an Unhandled Exception. Exception: Thread was being aborted. Method: ReadThread Stack: at Xceed.SSH.Core.SSHIOManager.ReadThread()

To correct this, the Xceed libraries have been updated from 5.8 to 6.0.

Neuron 3.5.4.756 

Business Processes

FIX - Flat File Parser Wizard – The flat file parser could not parse a semicolon-delimited file. Furthermore, if the file had headers in the first row and there were repeating header name values, they were not supported. Support has been added for semicolon-delimited files. Also, repeating header names will be processed by taking the subsequent occurrences of headers and appending an underscore and a number. i.e. name, name_1, name_2, etc.

FIX - Flat File Parser Wizard – Column names were not being populated correctly if the user navigated backwards in the wizard, checked the "First Row Contains Column Name" box, and then navigated forward to the next screen the preview pane would list the correct column names, but the actual names of the columns would be "Field1", "Field2", etc.

FIX - Flat File Parser Wizard – The column names sometimes do not match up to the actual name of the column if underscores are present in the column name. In "Set the column details" page of the Flat File Parser Wizard, sometimes the name column name in the preview pane does not match up with the actual column name that the user enters in the "Name:" text box. The wizard would remove the first underscore in a column name unless it's at the end of the name

FIX - Flat File Parser Wizard – An expected exception could occur at design time, causing the Neuron ESB Explorer to crash if both the Vertical Bar delimiter for a flat file type and "First Row Contains Column Name" check box was selected before loading a sample file to parse.

FIX – Flat File Parser Wizard - The flat file parser was recreating the engine with every call. To improve the performance while using the parser within a split step we now reuse the engine during execution.

FIX – HTTP Client Utility – The value provided in the “Request URL” text box was not being used correctly to set the Full URL address of the Service Connector that would eventually be called. If only a local path value was given, that would correctly. Now both work.

FIX – HTTP Client Utility – Attempting to use an Environment Variable to set the value of the “Request URL” text box would result in a “Key not found” exception. This has been fixed

FIX - When Using ellipses to edit the code in Process Steps such as the For, For Each, While, Split/Join, Decision, Publish, or Parallel, the code entered would always revert to the previous saved version.

FIX – JSON Process Step - When converting from JSON to XML, if a root was specified and there was only one element in the JSON, the root would not be applied. Also, if an xml declaration was set to be added on the conversion (JSON to XML) it would not be applied.

Repository

FIX – Text Documents - When importing a text document with extended ascii characters, the characters display as invalid in the UI. However, if copying and pasting the same characters from Notepad++ into the text repository they would display correctly.

Services

FIX – Swagger – When using the meta data dialog of the Client Connector to assign a Swagger document to the Client Connector endpoint, if the user later disables it, the setting would remain enabled.

FIX – Swagger – When moving a Neuron Solution from one environment to another (e.g. QA to Production), the Swagger documentation that was previously accessible from the Client Connector url in the first environment would be inaccessible in the new environment.

FIX – Swagger – if a Swagger enabled Client Connector URL was configured to use a port, the Swagger documentation would be inaccessible.

FIX – TLS Security Support - When attempting to resubmit a message to a service endpoint that only supports TLS 1.1 or higher, or to a Salesforce adapter endpoint, or when testing within the Neuron ESB Explorer or Test Client, the user could receive the following exception:

System.ServiceModel.FaultException: Unsupported_Client:TLS1.0 has been disabled in this organization

Monitoring

MOD - When availability groups or workflow endpoints are stopped, no messages were written to the Neuron ESB log file indicating that the availability group or endpoint was being stopped or has stopped.

Workflow

MOD – Code Editor - When editing a workflow code activity, the "SourceCode" property was displayed in the property grid with an edit button. Clicking on the edit button would open the editor tab, but the source code would be erased. This property has been removed. Users can use either the inline workflow editing or the right-click context menu's "Edit Code" menu option to open the Code Editor for editing.

FIX – C# Class Workflow Activity -  Customers upgrading existing workflows that use the C# Class workflow activity to CU4 will encounter “Parameter mismatch” exceptions at runtime. In CU4, we added an additional parameter to the template to allow for logging which broke backwards compatibility. This has been corrected.

FIX – Workflow Endpoints Not Starting after Database failure - During the execution of workflows, if the Neuron ESB Database became unavailable due to a SQL Server or Network issue, the workflows would remain in a reported Executing state. Once the Neuron ESB database became available again, the workflows would continue to remain in an Executing state within the Workflow Tracking system, appearing as if they were "stuck" and never completing. New messages would not be processed. Instead they would build up in the pending messages queue. This occurred because the system believed that the max concurrent workflows limit had been reached because the terminated workflows were left in an Executing state. The only way to resolve this would be to restart the Neuron ESB Service. This has been resolved. The Neuron ESB service no longer needs to be restarted for the new messages to be processed.

Neuron Explorer

FIX – Generation of MSMQ PowerShell Scripts - When this script was generated, ALL the lines were commented out. Now the script will check for the existence of the Queue before creating it and assigning permissions. Also, verbose and warnings are logged to the console.

Adapters

FIX – Salesforce Adapter – Once an Oauth token expired, the adapter would not attempt to renew the token and instead would log the following error:

The received status code, "Unauthorized", is not a success status code.  The reason phrase is "Unauthorized".  The response message is:

 

[{"message":"Session expired or invalid","errorCode":"INVALID_SESSION_ID"}]

This was a regression bug introduced by CU4 and has been corrected.

FIX – Salesforce Adapter – Any HTTP non-success code would result in an exception getting thrown back from the adapter. This was a regression bug introduced by CU4 and has been corrected.

FIX – Salesforce Adapter – If the REST method was not set, the adapter would only report a Null Exception rather than reporting what was missing and must be fixed.

FIX – Salesforce Adapter – Users could experience the following exception if non-compliant HTTP Headers were forwarded as part of the request message to the Salesforce Adapter Endpoint:

The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel.

Other exceptions, such as “Misused header name” could also occur. This could happen if the request message sent to the Salesforce adapter originated from a REST client sending a request to a Neuron ESB Client Connector and that request contained non-compliant HTTP headers.  The Salesforce adapter has been updated to automatically remove these headers before forwarding the request:

  • Accept-Encoding
  • Accept-Language
  • Accept
  • Host
  • Cache-Control
  • Origin
  • User-Agent
  • Content-Length
  • Location
  • Sforce-Limit-Info

Neuron 3.5.4.730 

Workflow

FIX – WMI Performance Counter memory leak – When starting up Workflow endpoints, the following error may be reported:

“Workflow Definition could not be started. System.InvalidOperationException: Custom counters file view is out of memory.”

Business Processes

FIX – Audit Process Step – When running in Design mode, user may encounter the following error:

Unable to cast object of type 'Neuron.Esb.EsbService.MessageAuditProxy' to type 'System.ServiceModel.ICommunicationObject'

This was a bug introduced in CU4

FIX – JSON Process Step – When attempting to convert an Array into an XML document, the following error may occur:

XmlNodeConverter can only convert JSON that begins with an object.

This was a bug introduced in CU4

Neuron 3.5.4.727 

Business Processes

MOD – Transform, Set Property, Call Service, XML Query, Table Query, Excel to Xml and Json Process Steps – Previously, these steps would maintain the current Message ID on the message that resulted from their execution. This has been changed so that they will now generate a new Message ID, while setting the Parent Message ID property with the value of the original Message ID.

FIX – Transaction ID – When creating an ESB Messsage, the Transaction ID would only be sent once a message was published. If a user audited the message before it was published, this value would be blank. The property is now being initialized during the creation of the message.

FIX – Adapter Endpoint Process Step - If an adapter endpoint called by the Process Step is in subscribe mode and has its adapter policy configured to "<None>", the message would not get processed by the adapter. This has been corrected

FIX – HTTP Utility - The Clear Message Body check box was not getting saved if checked.

Service Endpoints

FIX – REST based Client Connector – When receiving messages published through a REST based Client Connector, the uncompressed message size header property would not be set.

Adapters

FIX – Azure Service Bus Adapter - The Azure SB adapter restricted the message size to be greater than 0 (no empty messages) and less than 256 KB. These were the original limits from Azure Service Bus. Now Azure SB Adapter supports empty messages and has different size allowances based on subscription tier.

Neuron 3.5.4.719 

Business Processes

FIX – Audit Process Step – When testing a process within the Neuron ESB Explorer Process Designer, if the Audit Process Step generated a fault to the Audit Service, it would not be recreated.

FIX – Compression Process Step – When attempting to use this the following error would be generated:

Aborted: Could not load file or assembly 'Xceed.Zip.v5.8, Version=5.8.16152.0, Culture=neutral, PublicKeyToken=ba83ff368b7563c6' or one of its dependencies.

Service Broker

FIX – Swagger Support – If a Client Connector was enabled to expose Swagger, the Swagger URL hosted by Neuron ESB would not be available from a remote machine. For example, if the Neuron ESB Client Connector URL was http://mymachinename:9192/Users, then the http://mymachinename:9192/Users/Help URL that would normally redirect users to the Swagger documentation, would generate a 404 error.

FIX – HTTP.Query – When receiving inbound REST calls, the HTTP.Query object would not contain query elements in the inbound URL if present. This was a bug introduced with 3.5.4.700 (i.e. CU4).

Workflow

FIX – Cluster Failover Support – When using Availability Groups, the server designated as a “Failover” server would host and run workflow endpoints even if the designated “Primary” servers have not failed.

FIX – Cluster Failover Support – When a primary server would fail, any dehydrated workflows would not automatically startup on the designated “Failover” machine.

FIX – Referenced Assemblies – if Assemblies were added as a reference at the Workflow designer level, they would not be inherited and used by the Code Workflow Activities such as C# or C# Class.  The user could receive a compile error when trying to use them. This bug was introduced with CU4.

Neuron Explorer

FIX – Neuron Explorer – File Open Dialog - If either the Configuration Server dialog was set with a folder (either local or UNC path) that was no longer available, or the last solution opened pointed the folder that was no longer available, a user would see the error dialog indicating that the "Network Name Cannot be Found" error. However, the open file dialog box would never be displayed, functionally preventing the user from either opening a new solution using the File Open menu, or changing the runtime configuration by using the Configure Server dialog box. If the folder is no longer available, the open folder dialog box will now be displayed using the My Documents folder location as the default. Also, upon closing the Explorer, the old path will be removed from the MRU list.

FIX – Endpoint Health – Workflow - If a user had a primary server and a failover server defined in the Availability Group, the endpoint health would say that both the primary server and failover server were started. The primary server column for the failover server would also wrongly state that the failover server is the primary server for the failover server (i.e. the failover server listed itself as the primary server). 

Adapters

NEW – ActiveMQ Adapter – Added the “Time to Live” property for Subscribe mode endpoints to control when a message sent by Neuron ESB to an ActiveMQ queue will be moved to the ActiveMQ dead letter queue.

FIX – SFTP/FTP Adapter – Warnings could be generated stating that the log file could not be deleted when adapter starts up. This can be ignored.

FIX – Adapter Policies – If an Availability Window was activated for an adapter while the adapter was in the process of processing a message, the message maybe discarded rather than rolled back.

Database

FIX – Updating database causes error – When attempting to update an existing database to use Neuron ESB 3.5.4 (CU4) the following error could be generated:

Event Info: Message Audit Service

Exception: Violation of PRIMARY KEY constraint 'PK_MessageAudit_AllTopics'. Cannot insert duplicate key in object 'dbo.MessageAudit_AllTopics'. The duplicate key value is (835380).

The statement has been terminated.

This was due to a bug introduced into the PurgeAndBAckUpNeuronDatabase database sql agent job.

Neuron 3.5.4.700 

Runtime Services

NEW – Added support for the “legacyUnhandledExceptionPolicy” flag within the Workflow and Neuron ESB runtime hosts. This is enabled now by default. This will prevent unhandled exceptions from terminating the host environments. For pre CU4 behavior users can set the Enabled attribute to 0. The “legacyUnhandledExceptionPolicy” element is located in the runtime section of the host’s .config file.

  <runtime>

    <!-- the following setting prevents the host from closing when an unhandled exception is

            thrown -->

    <legacyUnhandledExceptionPolicy enabled="1"/>

 

NEW – The Neuron ESB runtimes depend on the operating system’s temp directory for healthy runtime performance. Many of the Neuron ESB artifacts are dynamically compiled at runtime when first used, or when a modification is detected. Unfortunately, the Windows operating system has a limit to the number of temp files that can be created in the temp directory and it has no facility to periodically clean the directory out. On startup, Neuron ESB will now attempt to delete the contents of the temp directory to prevent startup or runtime failures due to too many files being present in the directory.

MOD – Neuron ESB uses Xceed libraries for various functions like FTP, SFTP, SFTP, Compression, etc. These libraries have been updated to version 5.8

MOD – Neuron ESB provides both a Rabbit MQ Topic transport and a Rabbit MQ Adapter/Connector. All Rabbit MQ functionality has been updated to support Rabbit MQ version 3.5.6 and Erlang 18.1

MOD – The name of the installer package has been changed from Setup.exe to InstallNeuronESB.exe. This was done to address a security vulnerability on Windows based on a recommendation from the WiX team.

MOD - If the Neuron ESB Master Control service faults within a child service, the service name of the child service will be logged with the information in the Neuron ESB Event log

FIX – The auditing service could fail to audit a failed message if the Topic was missing. This would be recorded as a Topic is null exception. However, this would prevent the original exception information and message from being logged. If this condition is now detected, we will automatically the topic property to “TopicIsMissing” so that the original message and error information gets logged successfully.

FIX – Neuron ESB TCP Ports could remain open if remote (cross machine) clients disconnected due to a network failure or a dirty disconnect. This could lead to leaking sockets, which eventually would cause Neuron ESB to run out of ports. To address this issue, the Reliable Session and Inactivity Timeout properties have been added to the Internal Service Bindings Settings located on the Server tab of the Zone within the Neuron ESB Explorer. By setting Reliable Sessions to true and accepting the default value for Inactivity Timeout (10 minutes), the TCP ports will be closed after 10 minutes. If the remote party re-connects within the 10-minute window, it will connect to the previously connected open ports.

FIX – Within each Neuron ESB Party is a management thread routing that periodically checks for version changes against the Neuron ESB server. This could sometimes generate the following warning message in the event log:

Event Info: A problem occurred while trying to check the server configuration version This request operation sent to net.tcp://localhost:50000/DEFAULT/ESBConfigurationService/ did not receive a reply within the configured timeout (00:01:00). The time allotted to this operation may have been a portion of a longer timeout. This may be because the service is still processing the operation or because the service was unable to send a reply message. Please consider increasing the operation timeout (by casting the channel/proxy to IContextChannel and setting the OperationTimeout property) and ensure that the service is able to connect to the client.

Once this was generated, it would sometimes generate the same warning on every version check. Also, between checks we would sleep the thread for the amount of time specified for the Client Refresh Interval. This could unnecessarily lock the party during shutdown and clean up procedures.

The former has been resolved by checking the state and recreating the proxy for the configuration service as necessary. The latter has been resolved by implementing a manual reset event.

FIX - When Neuron ESB was starting up, adapters could be started prematurely and could begin processing messages before other subsystems were ready. This could cause various issues like message loss.

FIX - On startup, if the amount of time to start the Neuron ESB service exceeded the configured limit in the esbservice.exe.config file (default is 10 minutes) a timeout exception would be thrown in the subscribing endpoints, but would not be properly logged.

FIX - If a custom Business Process step was being used in a process and the assembly was not present at runtime, the error would be reported across all services that were running in the Neuron ESB Runtime.

FIX - When configuration changes are detected we now perform a full garbage collection and reclaim heap from the generation 2 heap and release unused memory pages back to the operating system. This previously could appear as a memory leak.

FIX - An ObjectDisposedException could occur when sending pings or heartbeats from Neuron ESB child services.

FIX – Machine names longer than 15 characters are now supported for Neuron ESB produce License key generation and validation during the installation and usage of Neuron ESB. In previous editions license keys that were generated for machine names vs domain names were limited to the NetBios naming limitation of 15 characters.

FIX – The Neuron ESB Master Control service could throw timeout exceptions when a configuration change is made.

FIX - If the ESB Configuration (solution) path configured for the Neuron ESB runtime included a trailing slash, all Availability Groups (ESBHost.exe) would fail to start.

Database

NEW – Added the ability to Add Groups to the security tab of a Neuron ESB database within the Neuron ESB Explorer.

FIX - If users were removed from the security tab of a Neuron ESB database within the Neuron ESB Explorer, they would not be removed from the NeuronUsers database role on the target SQL Server.

FIX – The Neuron ESB Purge and Archive SQL agent jobs were not resetting the ID of the identity columns.

FIX – Configuring a deployment group to use a database may cause the following exception to be raised in the Neuron ESB Explorer:

System.Exception: The configuration cannot be saved due to the following issue(s):

1. Deployment <deployment group name> references state database myserver.net.cn.dx\<sqlinstancename>,24851.<databaseName> which could not be found. The database must exist in the same zone as the deployment zone or in (All Zones)

The above issue(s) must be resolved before the configuration can be saved.

This was due to incorrect parsing of the machine name.

Messaging

NEW – Extended JSON support – The ToJObject() has been added to the Neuron ESB Message object. This will return the Neuron ESB Message body as a Newtonsoft.Json.Linq.JObject. This is accessible within either a Workflow or Business Process. It will allow users to use .NET’s dynamic object and write code similar to this in a Code editor window:

dynamic jo = context.Data.ToJObject();

var myToken = "Bearer " + jo.token;

var userName = jo.username;

MOD – TCP/Named Pipes Topic – Connected Neuron ESB Parties are now pinged in parallel to determine if they are alive.

MOD – TCP/Named Pipes Topic – Client expiration interval (the amount of time before cached client is removed from the connected client pool) has been set to twice the amount of the Send Timeout.

MOD - MSMQ and Rabbit MQ Topics - The underlying MSMQ and Rabbit MQ channels for Neuron ESB Parties will read messages from their respective queues ONLY IF the OnReceive event is wired up in the Neuron ESB Party. This only works with the Party object. This Will NOT work when using a Publisher or Subscriber object. This prevents message loss if a user connects the Party before wiring in the OnReceive event.

MOD – Rabbit MQ Topic Transport – This transport has been completely refactored and enhanced, over both significant performance and feature capabilities. 

FIX – When using the Party API on the same machine as the Neuron ESB Runtime, users could send messages before the Neuron ESB runtime was fully initialized. This has been fixed.

FIX – Editing or creating a TCP topic would sometimes cause all TCP topics to have their ports change and recycle.

FIX – When changing the transport property of a Topic, Neuron ESB would incorrectly report as a warning that it cannot start workflow endpoint X because it was already in the collection of running workflow endpoints.  This is expected and has been changed to an informational logging event.

FIX – MSMQ Topic – When new sub topics are added to an existing MSMQ based Topic and the subscriptions of their dependent Parties AND there are Neuron ESB Parties (Publishers/Subscribers) currently connected to the topic, the currently connected Parties would not recognize the new sub topic subscriptions.

FIX – TCP/Named Pipes Topic – The Neuron ESB TCP or Named Pipes Publishing service would sometimes throw errors on Disconnect or Shutdown.

FIX – TCP Topic – TCP properties could sometimes get out of sync with Neuron ESB Parties trying to connect. For example, if reliable was set to true on the server, Parties would try to connect with the reliable bit set to false, causing a mismatch error.

Workflow

NEW – A new Messages tab has been added to the Workflow Tracking Detail page which lists all of the message variables and arguments generated from the Workflow instance. This can be used to view the message values at various points in the workflow as well as edit and resubmit them back to endpoints or topics.

 wfthrowwfthrow

NEW – A new “Throw with Message” workflow activity has been added that will throw an exception and cause an associated message to be written to the Failed Message database table when the workflow aborts.  This was created to replace the existing Throw workflow activity which did not log the last message recorded to the Failed Message database table.

NEW – The existing Persist Workflow Activity has been replaced. The new Persist Workflow Activity will now refresh the Environment Variables argument if the workflow aborts and is later restarted at the persistence point. This means that if the Workflow is using environmental variables as parameters and their incorrect value caused the Workflow to abort, the user could easily correct the value of the Environmental Variable and then restart the Workflow instance which would now get the refreshed values.

MOD – Transform Message and Transform XML Workflow Activities – support for passing in variables has been added. Variables can be accessed by using {variable:var_name} in a property value. Also, the Parameters editor was not visible to edit the activities.

MOD - The Adapter and Service Endpoint workflow activities no longer attempt internal retries if sending a message fails.

MOD - The IsDesigner property has been added to the C# and VB.NET code workflow activities so that at runtime users can determine whether or not the activity is executing inside of Neuron ESB Explorer.

MOD – Extended JSON Support. All Code editors for Business Processes and Workflows reference the following assemblies and include their relevant using statements to make it easier to work with JSON messages:

Modified all code editors to include the following libraries:

"Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed",
"Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

Added following using statements to all the code editors:

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

FIX - When attempting to restart an aborted workflow, if the "error processing" message was displayed there was no useful error information logged or made available to the user.

FIX – Workflow Tracking Detail – Date time based columns were not always sorted properly, making the events appear to be out of order.

FIX - Workflows were being reported as Unloaded instead of Canceled or Completed in the Workflow Tracking. The Unload event was sometimes getting processed after the Canceled or Completed states were reported, and instead of being Canceled or Completed, the workflows appeared as Unloaded.

FIX - If the Party configured for a Workflow Endpoint threw an error at runtime, or an error occurred during connection (except for connecting to primary topic) the error would not be recorded in the Neuron ESB logs or in the Neuron ESB event log. The Workflow Endpoint would go into a failed state, but nothing to indicate why.

FIX - When a Workflow Endpoint started up (in the constructor) and if any condition was present preventing Neuron ESB from loading any of the workflow assemblies in the workflow directory, Neuron ESB would ignore the exception and allow the workflow endpoint to start. We now report the error for the workflow endpoint and prevent it from starting.

FIX - Previously, we loaded all assemblies located in the workflow directory for every workflow endpoint, regardless if the workflow endpoint referenced the particular assembly. This meant if there was an issue loading any one assembly it would cause all workflow endpoints to fail.

FIX - If there were issues encountered when the Workflow Endpoint started the GUID of the workflow endpoint, rather than the name of the endpoint would be logged.

FIX - Running workflow commands have a timeout associated with them. By default, the timeout is an hour. Periodically, that timeout would be extended for workflows that are actively executing. Due to a logic issue, the default timeout could be lost resulting in re-queuing and re-executed the command every 5 minutes. The following describes the behavior users would have seen:

User submit a message to a topic that executes workflow A. Workflow A has an activity in it that takes 10 minutes to complete. 5 minutes later, workflow B gets executed, yet the user only published one message to the topic. The user looks it up in workflow tracking and sees that workflow B has the same initiating message as workflow A. 5 minutes later, workflow C will get kicked off with the same message.

FIX - At runtime the Service Endpoint workflow activity could report a NullReferenceException

FIX - The environmentVariables argument to a workflow was IReadOnlyDictionary<string, string> and the EnvironmentVariables property of the Execute Process workflow activity was Dictionary<string, string>. This meant that the environmentVariables argument could not be used directly by the Execute Process workflow activity. This has been corrected.

FIX - The <assemblyBinding>/<probing> path did not include the Workflows subdirectory where custom workflow activity DLLs are stored. If a custom workflow activity was created and the DLL was added to the Workflows directory it could be successfully used in the workflow designer. However, at runtime the workflow engine would report an error because it was unable to resolve the custom activity type.

FIX - In some cases the workflow host would not log when a workflow definition failed to load correctly.

FIX – The Service Endpoint Workflow Activity never set either the HTTP Status Code or Status Description properties of the Neuron ESB Message. If the call failed, any check of the status code would return incorrectly return a 200;

FIX - If a user had a previous solution opened attempted to start an aborted workflow a key not found in collection error: System.Collections.Generic.KeyNotFoundException could be generated because we could not find the workflow endpoint in the current solution

FIX - Workflow Code Editors - Apply does not persist changes if user navigates away from editor window and then navigates back.

FIX – When testing a Workflow in the Workflow Designer that uses either the Audit Message, Publish Message or Service Connector workflow activities (live activities), a SourceID and Topic must always be provided through the “Edit Test Message” dialog box.  However, other workflow activities that create messages may not have the Source ID set. If one of the “live activities” follows it could throw an exception because the Source ID is missing, even though it was set in the “Edit Test Message” dialog. This was only an issue when testing in the Workflow Designer.

FIX – Using the Terminate Workflow Activity failed to log the message to the Failed Message database table and would instead log a “Object reference not set to an instance of an object” exception message.

FIX – When a message was logged to the Failed Message database table due to the Workflow aborting, the Workflow Name, Workflow Endpoint Name and Workflow Instance ID properties on the failed message were not being set.

FIX – When shutting down the ESB Service, the following errors could be logged:

Can't perform operation STOP# on Workflow Endpoint <workflow name>, running under <availability group name>, because Cannot write to a closed TextWriter.

Can't perform operation START# on Workflow Endpoint <workflow name>, running under <availability group name>, because Cannot write to a closed TextWriter.

FIX – If a Workflow instance aborted followed by the Workflow definition being modified by a user and then an attempt to restart the Workflow instance was made after the modification, the following error would be logged:

System.Activities.WorkflowApplicationAbortedException: The WorkflowApplication has been aborted because a Load or LoadRunnableInstance operation threw an exception. Create a new WorkflowApplication object to try loading another workflow instance.

This was because we were trying load the aborted workflow definition from disk rather than the definition originally stored with the workflow instance.

Business Processes

NEW - A search textbox feature has been added to the toolbar of the Business Process library.

bp1

NEW - Users can now double–click or right click (select “Display” from the context menu) on the row within the Trace window within the Business Process Designer display the full text, including its source process step in its own Window. Additionally, the “Step” column of the trace window now displays the type of step followed by its label/name.


 bp2
 

MOD - Modified how we write error information to the trace window during testing of Business Processes. Previously, we just wrote out the exception message. Now we write out the exception message, followed by the stack trace.

MOD - ODBC Process Step - To make the ODBC process step easier to use we added the same parameter mapping UI that is used in the SQL Store and SQL Query steps. This allows users to make database calls without using our proprietary message format.

MOD – Extended JSON Support. All Code editors for Business Processes and Workflows reference the following assemblies and include their relevant using statements to make it easier to work with JSON messages:

Modified all code editors to include the following libraries:

"Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed",
"Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"

Added following using statements to all the code editors:

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

FIX – Debugger - If a user launched the Debugger to test a Business Process within the Designer and stopped debugging part way through the process and closed the process, the last Process Step that the debugger was stopped on could still retain the debugging state and Yellow color.

FIX – Debugger – Attempting to access the Neuron ESB configuration variable while debugging would result in a null object.

FIX – The Trace Process Step now exposes the Name and Disabled properties.

FIX - Double clicking on a Business Process would not open the Business Process in the designer.

FIX - Changed several Business Process steps that used the Clone(false)method internally which did not preserve the existing Message ID. If these Business Process steps (e.g. json, xml query, table query, set property or call service) were used in the middle of a request/response flow (e.g. client connector calling a service connector or query/solicit response adapter), the calling client would time out waiting for the response message because the original Message ID would've been changed.

FIX - When testing the Service Endpoint Process Step within the Business Process designer, if a user tested with a Source ID of a Party that the Service Connector endpoint was configured to use, an "Object reference not set to an instance of an object" error would be thrown.

FIX – When testing a Process in the Business Process Designer that uses either the Audit Message, Publish Message or Service Connector workflow activities (live activities), a SourceID and Topic must always be provided through the “Edit Test Message” dialog box.  However, other Process Steps that create messages may not have the Source ID set. If one of the “live process steps” follows it could throw an exception because the Source ID is missing, even though it was set in the “Edit Test Message” dialog. This was only an issue when testing in the Business Process Designer.

FIX – Processes from one solution may be opened in a new solution if the processes were not closed prior to opening the new solution

FIX - If a user attempts to delete a process but clicks "no" on the confirmation message dialog box, the Neuron ESB Explorer would keep the configuration state as modified.

FIX – Debugger – When using the debugger in the Business Process designer, pressing the Stop button could generate a Null Reference Exception

FIX – Within either a Transform – XSLT or Validate – Schema process step, a user opens the xsl/xsd editor and attempts to make any edit that in the process of the edit would result in an invalid xml document, an unhandled exception would be thrown.

FIX - When using the Set Property process step, and more than one item is added to it, the Apply button may remain disabled.

FIX - Excel to XML process step: target namespace was getting assigned to the rows returned instead of the root node.

FIX - When testing the Transform - XSLT process step, by setting the "XSLT Name" property, if a user changed the xslt in the repository between tests, the updated xslt would not be used until the Neuron ESB explorer was closed and reopened.  

Monitoring and Reporting

MOD – Endpoint Health - Changed default refresh interval from 5 to 10 seconds.  

MOD - MSMQ Management – PowerShell MSMQ Create Scripts generated by the Neuron ESB Explorer now includes commented lines that can be uncommented to create queues successfully on a Windows Failover Cluster

FIX - Neuron ESB text based logging could throw and log an “Object reference not set to an instance of an object.” Exception.

FIX - When navigating to Endpoint Health, the Neuron ESB Explorer was not detecting the current deployment group of the existing local online service, or if offline mode, detecting what the local service is configured for and auto selecting it.

FIX - When in the Message Viewer (via Message History or Failed Message reports) and multiple messages are displayed, when a user clicks back and forth on the properties tab of each message the expires property value would consistently decrement.

FIX – Endpoint Health - Clicking the refresh button would cause a refresh, but further monitoring would stop.

FIX – Endpoint Health - starting endpoint health monitoring by pressing "start monitoring" button would toggle the button text to "stop monitoring" as expected. However, after the first refresh interval, the button text would toggle back to "start monitoring’.

FIX – Endpoint Health - Restarting an endpoint in Endpoint Health could result in an unhandled System.NullReferenceException: Object reference not set to an instance of an object.

FIX - Performance counters for Workflow Endpoints were not being created properly by including their instance name. This would prevent statistics of the workflow endpoints from being reported and correlated back to the correct instance of the Neuron ESB runtime. The issue only arose if there were multiple instances of the Neuron ESB runtime installed on a machine.

FIX – Endpoint Health - There could be occurrences where an error may occur in a Publish mode adapter, functionally disabling it, yet it would still be reported as Started without errors reported within Endpoint Health.

FIX – Endpoint Health - Users could encounter error conditions with workflow endpoints that would not be logged appropriately, preventing the workflow endpoint from being updated to a failed state in Endpoint Health

FIX – Management REST API - Specifically calling a GET on http://localhost:51002/neuronesb/api/v1/Runtime, would only return the information for one Neuron ESB runtime instance even if multiple instances were installed on the box.

FIX – Workflow Tracking – When running a workflow tracking report filtering on the State field and Date Range, the date range settings were ignored.

FIX - Message Viewer for Message History and Failed Message reports - The message body window did not resize correctly when displaying binary messages.

FIX - MSMQ Management - PowerShell MSMQ Create Scripts generated by the Neuron ESB Explorer includes all queues, not just missing queues, causing errors if the script is run multiple times.

Adapters

NEW - SAP Adapter – Added support for custom IDOC segment versions

NEW - SAP Adapter – A new feature has been added to allow users publish the raw IDOC to the bus. Now there are two options - "Typed" will publish a strongly-typed XML document representing the IDOC. "String" will publish the raw IDOC data.

NEW - SAP Adapter – Added Unicode support for connections.

NEW - File Adapter - added ability to disable lazy writes.

NEW – File Adapter – On Publish mode, users can now use the new “Encoding Override” property to overwrite the character set encoding of the document that is received and published to the bus. For example, if the native encoding of the file on disk that Neuron ESB is reading is UTF8 and there are western European characters (i.e. umlaut, etc.) they will not be properly encoded when published to the bus. But if the new “Encoding Override” property is set to 1252, then the data will be encoded as readable as expected.

NEW - File adapter - added the error reporting and error on publish properties.

NEW - MQSeries Adapter – Added new translation options, “None”, “CharacterSet”, “UTF8” and “Unicode”. 

NEW - MQSeries Adapter – Added the error reporting and error on publish properties.

NEW - MQSeries Adapter – Added a new property, “Remove BOM”.

NEW - MQSeries Adapter - added new translation option which is the default (acts as the old “none” option). New Translation options are “None”, “CharacterSet”, “UTF8” and “Unicode”. 

NEW - Dynamics CRM Adapter – Can be configured to use specific user credentials based on deployment group and environment variables. Username/password and windows credentials that have been created in the Neuron ESB security section now appear as a drop down box in the adapter’s property grid.

NEW - SharePoint Adapter - Added Security selector to assist in cross-domain integrations. User can select to use the service (or Run As) account or to type-in username, password and domain.

NEW - SharePoint Adapter - Added Request-Response mode for returning the document or list ID and the URL as a response

NEW - SharePoint Adapter - Added support for setting the library column values to update in code

NEW - SharePoint Adapter - Added support for setting the content type for uploaded documents or added list item.

NEW - NetSuite Adapter - Added support for SOAP API version 2015_2.

NEW - NetSuite Adapter - Support async calls for list operations - getList, addList, updateList, upsertList, deleteList, initializeList and search. Async operations have also been added to the Metadata Generation wizard. 

NEW - NetSuite Adapter - token-based authentication and wsdl 2016.1 support has been added. For wsdl versions 2015.1 and earlier, users can use still use username/password authentication. For wsdl versions 2015.2 and later, users can use consumer key and secret or token id and secret.

NEW – SMTP Adapter - Two new properties were added to allow users to better manage throughput. 1.) UnlimitedMessagesPerSession - set to false by default and 2.) MaxMessages - set to 1 by default. This will now allow users to send N number of messages on the same session. 

MOD – Renaming of Microsoft Dynamic adapters. In the CU4 release we’ve renamed several Dynamics adapters so that the names provide better clarity of feature and function.

Original Name

New Name

CRM Subscription Adapter

Dynamics CRM 4.0 Adapter

Dynamics CRM 2013 Adapter

Dynamics CRM XRM Adapter

eConnect Adapter

Dynamics GP eConnect Adapter

MOD - Removed/retired Microsoft Dynamics CRM4 Adapters from active release. These are now only available on request.

MOD – Added the RaiseReceiveFailedFromEndpoint() event to the Adapter Framework. There is no longer a need to manually create and call the audit proxy when wanting to send a failed message to the Failed Message database table if a custom publishing activity within a custom adapter fails.

MOD – Removed the “Audit On Failure” property for the following publish mode adapters. We now internally always audit the failure to the Failure database table.

  • FTP/FTPS
  • SFTP
  • ActiveMQ
  • Azure Service Bus
  • POP3
  • Microsoft Exchange
  • SAP
  • SalesForce
  • SQL Service Broker
  • MQSeries  **
  • File **

** NOTE: in 3.5.4, audit on publish failure and the error on publish properties were added.

MOD - Socket Adapter – Certificate selection is now a drop down populated through the Neuron ESB Repository.

MOD - File Adapter – now changed to a warning - "File adapter is not processing file ‘<filename>’ because exclusive read-write access could not be attained after 10 attempts"

MOD - File Adapter - In publish mode, if the directory didn't exist we were creating it. Now we will not create the directory.

MOD - MQSeries Adapter – Now calls the RaiseOfflineEvent on Disconnect()

MOD - MQSeries Adapter – Changed how we handle replies. Previously we were manually setting correlation properties. Now this uses the standard CreateReplyMessage() method from the ESB Message.

MOD - MQSeries Adapter – Disconnect() was being called twice on shutdown when in Publish mode.

MOD - MQSeries Adapter – Removed the "Maximum Get Retry Failures" property. This has been made obsolete by the "Error on Polling" and "Error Reporting" properties

MOD - NetSuite Adapter - Updated XML Sample generation to properly handle recordref fields.  if there is a "record" element for request messages, we remove the "type" attribute from any element that is an xsi:type="RecordRef". If there is a "get" or "getList" element, we modify the type attribute to be equal to the element that was selected in the browser.

FIX - Socket Adapter – the Solicit Response and Request Reply modes were operating differently than the other adapters. For Solicit Response, the adapter will now receive a request from Neuron ESB and send the request over the socket. For Request Reply, the adapter will receive a request from the socket, publish the request to the bus, and return the reply.

FIX – SQL Service Broker Adapter – users could encounter the following error while publishing to the bus.

System.Data.SqlClient.SqlException: A transport-level error has occurred when receiving results from the server. (provider: Session Provider, error: 19 - Physical connection is not usable)

This could be due to the SQL server becoming temporarily unavailable on the network. We now will detect the error and clear the connection related connection pool.

FIX - SAP Adapter - Custom IDOCS were not validating against the adapter's generated schemas due to an extra element being nested

FIX - SAP Adapter - At runtime, when the SAP adapter receives an IDOC it will connect to SAP to retrieve metadata about that IDOC. The adapter will search that metadata for the IDOC segments. Custom IDOC segments were not being retrieved correctly.

FIX - File Adapter – When polling remote directories using UNC paths and the paths become unavailable for extended period of times, a resource leak could occur because the underlying SMB sessions and ports were not being released.

FIX - File adapter - if we attempted to sort the list and that failed we logged the error but published unsorted list. Moving forward, we'll throw the error so files don't get published out of order.

FIX – SFTP Adapter - With archive mode enabled, if the folder path had a leading slash i.e. “\” or “/”, it would not get resolved correctly.

FIX - SFTP Adapter – some SFTP servers that were non-compliant with the SFTP specification could cause the adapter to disconnect in the middle of its operations.

FIX - SFTP Adapter – When in Publish mode, the underlying SSH Disconnect could cause a thread Abort Exception which in turn would terminate the polling of the adapter.

FIX - SFTP Adapter – Login user paths were not getting resolved correctly, causing the errors to occur when the adapter had to navigate to different folders on the SFTP server. This was problematic when the login credentials used were mapped to a specific directory other than the root folder of the SFTP server.

FIX - MQSeries Adapter – The adapter could throw a " Memory stream is not expandable." when trying to set the RFH2, CIH, MDE or IIH headers. This occurred because the default structure length was not getting properly set.

FIX - MQSeries Adapter – Adapter was not honoring Include Metadata checkbox. Even if unchecked, the existing wmq properties in the incoming message would be used.

FIX - MQSeries Adapter – If users had 7.0 or greater of MQSeries installed they would receive an error when attempting to populate the list of queue managers installed using the property grid of the adapter

FIX - MQSeries Adapter – The adapter was not polling at the configured interval in Publish mode because of a missing multiplier.

FIX - MQSeries Adapter – If the MQMD format is none, we will always use a byte array for a body. If the MQMD format points to different header, we’ll use that header’s format value to determine encoding. Previously, we were not converting appropriately using the correct encoding and character set values specified in the headers.

FIX - Dynamics CRM Adapter - the CRM Adapter was not able to generate XML samples when multiple entities/operations were selected.

FIX - Dynamics CRM Adapter - FetchXML allows users to retrieve values from linked entities, and assign an "alias" to the linked fields. The adapter handles aliased fields in the result set in a special manner, but did not handle aliased fields that are also entity references (i.e. a field in a linked entity that is actually a look up to a third entity).

FIX - NetSuite Adapter - if a user selected more than one entity/operation, the metadata generation only correctly created schemas and XML documents for the first one

FIX - NetSuite Adapter – A duplicate passport soap header could be applied causing an exception to be generated by NetSuite.

FIX - NetSuite Adapter – Modified to accommodate invalid Schema element names

FIX - Adapter Metadata Generation Wizard - If user changed the properties of a selected Adapter Endpoint, the property would be modified permanently on the endpoint.

FIX - Adapter Metadata Generation Wizard – Was not logging out and cleaning up connections appropriately on exit.

FIX - Salesforce Adapter – On startup, the validation routine was not being called appropriately. Also, once the connection was made successful and the session was created, it was persisted. If the user changed the login details to salesforce, those changes would not be used.

FIX - SMTP Adapter – Users could experience the following error when trying to send 100’s of messages through the SMTP adapter if the target SMTP server was restricted in the number of messages allowed per session.

System.Net.Mail.SmtpException
Service not available, closing transmission channel. The server response was: Error: too many messages in one session

The error occurred because Neuron ESB would create an SMTP connection on every send, but was not disposing the SMTP client after the send. 

FIX – Adapter Framework - If tryReceive() returns false because the Error On Polling was set to StopPollingOnError, we now call disconnect so resources are cleaned up and the RaiseOfflineEvent is called, updating Endpoint Health state. This ensures that users who create publish/polling based adapters with the framework will record their proper state when polling discontinues.

Service Broker

MOD – Client Connector – Neuron ESB no longer will return the Server HTTP header in the response.

MOD – Service Connector - Sending JSON encoded messages to service connector required users to enable the raw flag on the binding tab when using REST, regardless if the http Content-Type was set to application/json or text/json.

FIX – Client and Service Connectors - Verify to make sure the certificate exists in the configuration before attempting to retrieve it.

FIX - When attempting to override the HTTP StatusCode and Description from within Neuron ESB, the HTTP Response would be set correctly but the HTTP StatusCode and Description property were not being set in the HTTP Headers.

FIX – Client and Service Connectors - If a REST call is made, we now check to make sure the HTTP method has been set. Previously we just throw the following error:

System.NullReferenceException: Object reference not set to an instance of an object.

FIX – Service Connector - When windows client credentials were configured for the service connector, they were not being passed through to the service, unless binding environmental variables are used.

FIX – Client and Service Connectors - ContractFilter mismatch exceptions would be reported from the Neuron ESB global exception handler.

FIX – Client Connector - A key not found exception could occur when we attempted to retrieve the remote IP address and port of the inbound caller to the client connector endpoint.

FIX – Service Connector - Could not connect to an SSL server using TLS 1.2. Neuron ESB is now enabled to support TLS 1.1 and 1.2.

FIX – Client Connector - Index out of range exception would be returned if a query string with missing values were sent to a client connector e.g. http://localhost:8989/rest/?pickuplocationid=0011900000A&assessortype&status=assessment

Neuron Explorer and Test Client

FIX – Neuron ESB Explorer - If an error occurred during the loading of saved user settings, the exception dialog did not contain the inner exception details.

FIX – Neuron ESB Explorer and Test Client - When trying to connect via WS-Discovery, the entries disappear before a user is able to click "connect."

FIX – Neuron ESB Explorer - Business Process selection for a Party -  If the dropdown box for the direction is expanded and user navigates away and clicks anywhere on the "Selected Processes" list box, the current process in the window is removed from the Party.

FIX – Neuron ESB Test Client – The message body window did not resize correctly when displaying binary messages

FIX – Neuron ESB Test Client – Selecting clear or clear all did not effectively clear the message from the hex editor if the message was binary.

FIX – Neuron ESB Explorer and Test Client - Changed query time for WS-Discovery to 2 seconds from 5. Also the Connect window would continue to make WS-Discovery queries after being closed.

FIX – Neuron ESB Explorer - When a solution is locked by TFS and user attempts to open the solution using the Most Recently Used List, an unhandled Null Reference Exception would occur

FIX - Importing Business Processes in the Neuron ESB Explorer would not overwrite existing processes with the same name.

FIX – Neuron ESB Explorer - When a user saved any configuration change, the Neuron ESB Explorer would iterate through all Business Processes and deserialize them.

FIX – Neuron ESB Explorer - The Business Process’s Version GUID was not being changed when the process was changed and saved within the Business Process Designer.

FIX – Neuron ESB Explorer - The Topic’s version GUID was not being changed appropriately when a change was made to the Topic within the Neuron ESB Explorer.

FIX – Neuron ESB Explorer - Object reference error when trying to create a new solution could occur if business processes were not completely closed before attempting to create a new solution.

FIX – Neuron ESB Explorer - if a user navigates to workflow endpoint and during editing there was an error condition e.g. missing topic, etc., and the user presses the cancel button, the user would not be able to navigate away from the screen.

FIX – Neuron ESB Explorer - if a user clicked on subscribers or publishers, then without clicking/choosing an item (a subscriber or publisher entry) and clicked on show details, then clicked on edit subscriptions, a UI error would be thrown. The same error would occur with adapter endpoints when clicking on adapter bindings after clicking on show details without choosing an item.

FIX – Neuron ESB Explorer - in the XSLT document repository, if a user clicked on show details without choosing an item, the test button would still be enabled.

FIX – Neuron ESB Explorer - if a user selected file->export and a topic had an encryption key associated with it, the user would immediately get an error message and the export dialog would never be displayed. The error message would be: "topic N has a dependency on key X but key X was not found"

 

Download Locations:

NOTE: You must be logged into the Neuron ESB Support Center to view downloadable files.

The Neuron ESB 3.5 CU4 Update patch package can be downloaded directly from the Neuron ESB Support Center's 3.5 download section. Title: Neuron ESB 3.5 Cumulative Update 4 (CU4) - Patch, Filename is :NeuronPatch_3.5_CU4.zip Size: approx. 124MB

Alternatively, the Full Neuron ESB 3.5 CU4 installation package can be downloaded. This can be found in the Neuron ESB Support Center's 3.5 download section. Title: Neuron ESB 3.5 Cumulative Update 4 (CU4) - Full Install, Filename is: NeuronInstall_3.5_CU4.zip , Size: approx. 182MB

Install Instructions:

If installing the NeuronPatch_3.5_CU4.zip patch, the installation instructions can be found in the README.txt enclosed in the ZIP file. A summary of those instructions follow:

Running Powershell:

  • Open command prompt as administrator
  • Enter: powershell
  • Enter: set-executionpolicy allsigned
  • Change to the directory where the InstallPatch.ps1 script file is located
  • Enter: .\InstallPatch.ps1 > log.txt
  • Respond Y or N to the prompt about backing up files that will be overwritten
  • When the script runs, it will prompt you if you want to upgrade each qualifying instance.     Type Y and press Enter if you want to update or N if you do not.
  • When the script completes, open the log.txt file and make sure that the Errors count at the end of the log is 0
  • For each database at version 9, 10, 11 or 12, upgrade them to database version 15 by doing one of the following:
    • Using SQL Server Management Studio, run the following contained in the Sql folder of the Neuron ESB Install folder:  
      • At database version 9 (3.5.0.x): run 0010_UpdateTo3_5_0_34.sql, 0011_UpdateTo3_5_2.sql and 0012_UpdateTo3_5_3.sql 
      • At database version 10 (3.5.1.x): run 0011_UpdateTo3_5_2.sql and 0012_UpdateTo3_5_3.sql 
      • At database version 11 (3.5.2.x): run 0012_UpdateTo3_5_3.sql
      • At database version 12 (3.5.3.x): run 0013_UpdateTo3_5_4.sql, 0014_UpdateTo3_5_4.sql, 0015_UpdateTo3_5_4.sql in this order.
    • Using Neuron ESB Explorer
      • open a configuration solution
      • navigate to Deployment > Databases and select the database
      • click the Test/Create button
  • The update could make changes to Test Client configuration which could be different than custom settings you might have set. To correct this: 
    • open a Neuron Test Client 
    • navigate to Tools > Connection Settings 
    • update the values for Address, Zone and Service Identity as needed

Manual update:

To manually install this update, do the following:

  • Stop the "Neuron ESB 3.5 Discovery Service" which should also stop the dependent Neuron ESB v3 instance services
  • Make backup copies of the following folders (examples assume that the Neuron ESB instances are installed in the child folder of the main install folder:   
    • - C:\Program Files (x86)\Neudesic\Neuron ESB v3   
    • - C:\Program Files\Neudesic\Neuron ESB v3 (or the location you installed Neuron ESB)   
    • - Each instance folder if not installed in C:\Program Files\Neudesic\Neuron ESB v3
  • Copy files from NeuronESB_3.5_CU4.zip "files\DiscoveryService" folder to C:\Program Files (x86)\Neudesic\Neuron ESB v3
  • Copy files from NeuronESB_3.5_CU4.zip "files\InstallPath" folder to C:\Program Files\Neudesic\Neuron ESB v3 (or the location you installed Neuron ESB)
  • For each Neuron ESB Instance being updated that is running x64 version of files, copy files from NeuronESB_3.5_CU4.zip "files\Instancex64" folder to instance folder
  • For each Neuron ESB Instance being updated that is running x86 version of files, copy files from NeuronESB_3.5_CU4.zip "files\Instancex86" folder to instance folder
  • For each database at version 9, 10, 11 or 12, upgrade them to database version 15 by doing one of the following:
    • Using SQL Server Management Studio, run the following contained in the Sql folder of the Neuron ESB Install folder:  
      • At database version 9 (3.5.0.x): run 0010_UpdateTo3_5_0_34.sql, 0011_UpdateTo3_5_2.sql and 0012_UpdateTo3_5_3.sql
      • At database version 10 (3.5.1.x): run 0011_UpdateTo3_5_2.sql and 0012_UpdateTo3_5_3.sql
      • At database version 11 (3.5.2.x): run 0012_UpdateTo3_5_3.sql
      • At database version 12 (3.5.3.x): run 0013_UpdateTo3_5_4.sql, 0014_UpdateTo3_5_4.sql, 0015_UpdateTo3_5_4.sql in this order.
    • Using Neuron ESB Explorer
      • - open a configuration solution
      • - navigate to Deployment > Databases and select the database
      • - click the Test/Create button
  • Start the "Neuron ESB 3.5 Discovery Service" and each "Neuron ESB v3 ..." instance service
  • The update could make changes to Test Client configuration which could be different than custom settings you might have set. To correct this:
    • - open a Neuron Test Client
    • - navigate to Tools > Connection Settings
    • - update the values for Address, Zone and Service Identity as needed.
  • Delete the following old files from each Neuron ESB Instance folder:
    • - Xceed.Compression.Formats.v5.7.dll 
    • - Xceed.Compression.v5.7.dll 
    • - Xceed.FileSystem.v5.7.dll 
    • - Xceed.Ftp.v5.7.dll 
    • - Xceed.GZip.v5.7.dll 
    • - Xceed.SSH.Client.v5.7.dll 
    • - Xceed.SSH.Core.v5.7.dll 
    • - Xceed.SSH.Protocols.v5.7.dll 
    • - Xceed.SSH.SFtp.v5.7.dll 
    • - Xceed.Tar.v5.7.dll 
    • - Xceed.Zip.v5.7.dll
(0 vote(s))
This article was helpful
This article was not helpful

Comments (0)
Post a new comment
 
 
Full Name:
Email:
Comments:
Help Desk Software by Kayako Fusion