10.02.2013 Views

850_update_bulletin - Progress Sonic Product Update Bulletin 8.5

850_update_bulletin - Progress Sonic Product Update Bulletin 8.5

850_update_bulletin - Progress Sonic Product Update Bulletin 8.5

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

®<br />

®<br />

PROGRESS®<br />

SONIC®<br />

<strong>Product</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Progress</strong>® <strong>Sonic</strong>® <strong>Product</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong><br />

© 2011 <strong>Progress</strong> Software Corporation and/or its subsidiaries or affiliates. All rights reserved.<br />

These materials and all <strong>Progress</strong>® software products are copyrighted and all rights are reserved by <strong>Progress</strong><br />

Software Corporation. The information in these materials is subject to change without notice, and <strong>Progress</strong><br />

Software Corporation assumes no responsibility for any errors that may appear therein. The references in these<br />

materials to specific platforms supported are subject to change.<br />

Actional, Apama, Artix, Business Empowerment, Business Making <strong>Progress</strong>, DataDirect (and design), DataDirect<br />

Connect, DataDirect Connect64, DataDirect Technologies, DataDirect XML Converters, DataDirect XQuery,<br />

DataXtend, Dynamic Routing Architecture, EdgeXtend, Empowerment Center, Fathom, Fuse Mediation Router,<br />

Fuse Message Broker, Fuse Services Framework, IntelliStream, IONA, Making Software Work Together,<br />

Mindreef, ObjectStore, OpenEdge, Orbix, PeerDirect, POSSENET, Powered by <strong>Progress</strong>, PowerTier, <strong>Progress</strong>,<br />

<strong>Progress</strong> DataXtend, <strong>Progress</strong> Dynamics, <strong>Progress</strong> Business Empowerment, <strong>Progress</strong> Empowerment Center,<br />

<strong>Progress</strong> Empowerment Program, <strong>Progress</strong> OpenEdge, <strong>Progress</strong> Profiles, <strong>Progress</strong> Results, <strong>Progress</strong> Software<br />

Business Making <strong>Progress</strong>, <strong>Progress</strong> Software Developers Network, <strong>Progress</strong> <strong>Sonic</strong>, ProVision, PS Select,<br />

Savvion, SequeLink, Shadow, SOAPscope, SOAPStation, <strong>Sonic</strong>, <strong>Sonic</strong> ESB, <strong>Sonic</strong>MQ, <strong>Sonic</strong> Orchestration<br />

Server, SpeedScript, Stylus Studio, Technical Empowerment, WebSpeed, Xcalia (and design), and Your Software,<br />

Our Technology-Experience the Connection are registered trademarks of <strong>Progress</strong> Software Corporation or one of<br />

its affiliates or subsidiaries in the U.S. and/or other countries. AccelEvent, Apama Dashboard Studio, Apama Event<br />

Manager, Apama Event Modeler, Apama Event Store, Apama Risk Firewall, AppsAlive, AppServer, ASPen, ASPin-a-Box,<br />

BusinessEdge, Cache-Forward, CloudEdge, DataDirect Spy, DataDirect SupportLink, Fuse, FuseSource,<br />

Future Proof, GVAC, High Performance Integration, ObjectStore Inspector, ObjectStore Performance Expert,<br />

OpenAccess, Orbacus, Pantero, POSSE, ProDataSet, <strong>Progress</strong> Arcade, <strong>Progress</strong> CloudEdge, <strong>Progress</strong> Control<br />

Tower, <strong>Progress</strong> ESP Event Manager, <strong>Progress</strong> ESP Event Modeler, <strong>Progress</strong> Event Engine, <strong>Progress</strong> RFID,<br />

<strong>Progress</strong> RPM, PSE Pro, SectorAlliance, SeeThinkAct, Shadow z/Services, Shadow z/Direct, Shadow z/Events,<br />

Shadow z/Presentation, Shadow Studio, SmartBrowser, SmartComponent, SmartDataBrowser, SmartDataObjects,<br />

SmartDataView, SmartDialog, SmartFolder, SmartFrame, SmartObjects, SmartPanel, SmartQuery, SmartViewer,<br />

SmartWindow, <strong>Sonic</strong> Business Integration Suite, <strong>Sonic</strong> Process Manager, <strong>Sonic</strong> Collaboration Server, <strong>Sonic</strong><br />

Continuous Availability Architecture, <strong>Sonic</strong> Database Service, <strong>Sonic</strong> Workbench, <strong>Sonic</strong> XML Server, The Brains<br />

Behind BAM, WebClient, and Who Makes <strong>Progress</strong> are trademarks or service marks of <strong>Progress</strong> Software<br />

Corporation and/or its subsidiaries or affiliates in the U.S. and other countries. Java is a registered trademark of<br />

Oracle and/or its affiliates. Any other marks contained herein may be trademarks of their respective owners.<br />

Third Party Acknowledgements:<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates Model Objects Framework v2.0 from ModelObjects Group. Such technology is<br />

subject to the following terms and conditions: The ModelObjects Group Software License, Version 1.0 - Copyright<br />

(c) 2000-2001 ModelObjects Group. All rights reserved. Redistribution and use in source and binary forms, with<br />

or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source<br />

code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions<br />

in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the<br />

documentation and/or other materials provided with the distribution. 3. The end-user documentation included with


the redistribution, if any, must include the following acknowledgement: "This product includes software developed<br />

by the ModelObjects Group (http://www.modelobjects.com)." Alternatively, this acknowledgement may appear in<br />

the software itself, if and wherever such third-party acknowledgements normally appear. 4. The name<br />

"ModelObjects" must not be used to endorse or promote products derived from this software without prior written<br />

permission. For written permission, please contact djacobs@modelobjects.com. 5. <strong>Product</strong>s derived from this<br />

software may not be called "ModelObjects", nor may ModelObjects" appear in thier name, without prior written<br />

permission of the ModelObjects Group. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR<br />

IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br />

MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT<br />

SHALL THE MODEL OBJECTS GROUP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,<br />

INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,<br />

BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,<br />

DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF<br />

LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR<br />

OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF<br />

THE POSSIBILITY OF SUCH DAMAGE.<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates OpenSAML Java Distribution v1.0.1. Such technology is subject to the following<br />

terms and conditions: The OpenSAML License, Version 1. Copyright (c) 2002 - University Corporation for<br />

Advanced Internet Development, Inc. All rights reserved. Redistribution and use in source and binary forms, with<br />

or without modification, are permitted provided that the following conditions are met: Redistributions of source<br />

code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in<br />

binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the<br />

documentation and/or other materials provided with the distribution, if any, must include the following<br />

acknowledgment: "This product includes software developed by the University Corporation for Advanced Internet<br />

Development (http://www.ucaid.edu)Internet2 Project. Alternately, this acknowledegement may appear in the<br />

software itself, if and wherever such third-party acknowledgments normally appear. Neither the name of<br />

OpenSAML nor the names of its contributors, nor Internet2, nor the University Corporation for Advanced Internet<br />

Development, Inc., nor UCAID may be used to endorse or promote products derived from this software without<br />

specific prior written permission. For written permission, please contact opensaml@opensaml.org. <strong>Product</strong>s<br />

derived from this software may not be called OpenSAML, Internet2, UCAID, or the University Corporation for<br />

Advanced Internet Development, nor may OpenSAML appear in their name, without prior written permission of<br />

the University Corporation for Advanced Internet Development. THIS SOFTWARE IS PROVIDED BY THE<br />

COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND WITH ALL FAULTS. ANY EXPRESS OR<br />

IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br />

MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE<br />

DISCLAIMED AND THE ENTIRE RISK OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY,<br />

AND EFFORT IS WITH LICENSEE. IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS<br />

OR THE UNIVERSITY CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE<br />

FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL<br />

DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR<br />

SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED<br />

AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT


(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS<br />

SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates BasicLogin.java, SimpleCallbackHandler.java, SimplePasswordUser.java,<br />

SampleLoginModule.java, SamplePrincipal.java from Sun Microsystems, Inc. These technologies are subject to<br />

the following terms and conditions: Copyright 2000-2002 Sun Microsystems, Inc. All Rights Reserved.<br />

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the<br />

following conditions are met: -Redistributions of source code must retain the above copyright notice, this list of<br />

conditions and the following disclaimer. -Redistribution in binary form must reproduce the above copyright notice,<br />

this list of conditions and the following disclaimer in the documentation and/or other materials provided with the<br />

distribution. Neither the name of Sun Microsystems, Inc. or the names of contributors may be used to endorse or<br />

promote products derived from this software without specific prior written permission. This software is provided<br />

"AS IS," without a warranty of any kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS<br />

AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR<br />

A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS<br />

LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES OR LIABILITIES SUFFERED BY LICENSEE<br />

AS A RESULT OF OR RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE<br />

OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST<br />

REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL,<br />

INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF<br />

LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS<br />

BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. You acknowledge that Software is not<br />

designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates Saxon XSLT and XQuery Processor v8.9.0.4 from Saxonica Limited<br />

(http://www.saxonica.com/) which is available from SourceForge (http://sourceforge.net/projects/saxon/). PSC<br />

will, at Licensee's request, provide copies of the source code for this third party technology, including<br />

modifications, if any, made by PSC. PSC may charge reasonable shipping and handling charges for such<br />

distribution. Licensee may also obtain the source code through http://communities.progress.com/pcom/docs/DOC-<br />

16051 by following the instructions set forth therein. - Mozilla Public License Version 1.0 (the "License"); you may<br />

not use this file except in compliance with the License. You may obtain a copy of the License at<br />

http://www.mozilla.org/MPL. Software distributed under the License is distributed on an "AS IS" basis,<br />

WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language<br />

governing rights and limitations under the License. The Original Code of Saxon comprises all those components<br />

which are not explicitly attributed to other parties. The Initial Developer of the Original Code is Michael Kay. Until<br />

February 2001 Michael Kay was an employee of International Computers Limited (now part of Fujitsu Limited),<br />

and original code developed during that time was released under this license by permission from International<br />

Computers Limited. From February 2001 until February 2004 Michael Kay was an employee of Software AG, and<br />

code developed during that time was released under this license by permission from Software AG, acting as a<br />

"Contributor". Subsequent code has been developed by Saxonica Limited, of which Michael Kay is a Director,<br />

again acting as a "Contributor". A small number of modules, or enhancements to modules, have been developed by<br />

other individuals (either written specially for Saxon, or incorporated into Saxon having initially been released as<br />

part of another open source product). Such contributions are acknowledged individually in comments attached to


the relevant code modules. All Rights Reserved.<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates Mozilla Rhino v1.5R3. The contents of this file are subject to the Netscape Public<br />

License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may<br />

obtain a copy of the License at http://www.mozilla.org/NPL/. Software distributed under the License is distributed<br />

on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the<br />

specific language governing rights and limitations under the License. The Original Code is Mozilla Communicator<br />

client code, released March 31, 1998. The Initial Developer of the Original Code is Netscape Communications<br />

Corporation. Portions created by Netscape are Copyright (C) 1998-1999 Netscape Communications Corporation.<br />

All Rights Reserved. PSC will, at Licensee's request, provide copies of the source code for this third party<br />

technology, including modifications, if any, made by PSC. PSC may charge reasonable shipping and handling<br />

charges for such distribution. Licensee may also obtain the source code through<br />

http://communities.progress.com/pcom/docs/DOC-16051 by following the instructions set forth therein.<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates Apache Ant-Contrib 1.0B3. Such technology is subject to the following terms<br />

and conditions: The Apache Software License, Version 1.1 - Copyright (c) 2001-2003 Ant-Contrib project. All<br />

rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted<br />

provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright<br />

notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the<br />

above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other<br />

materials provided with the distribution. 3. The end-user documentation included with the redistribution, if any,<br />

must include the following acknowlegement: "This product includes software developed by the Ant-Contrib<br />

project (http://sourceforge.net/projects/ant-contrib)." Alternately, this acknowlegement may appear in the software<br />

itself, if and wherever such third-party acknowlegements normally appear. 4. The name Ant-Contrib must not be<br />

used to endorse or promote products derived from this software without prior written permission. For written<br />

permission, please contact ant-contrib-developers@lists.sourceforge.net. 5. <strong>Product</strong>s derived from this software<br />

may not be called "Ant-Contrib" nor may "Ant-Contrib" appear in their names without prior written permission of<br />

the Ant-Contrib project. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED<br />

WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br />

MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT<br />

SHALL THE ANT-CONTRIB PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,<br />

INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,<br />

BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,<br />

DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF<br />

LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR<br />

OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF<br />

THE POSSIBILITY OF SUCH DAMAGE.<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates Xalan Java XSLT Parser v2.4.1 from the Apache Foundation. Such technology<br />

is subject to the following terms and conditions: The Apache Software License, Version 1.1 - Copyright (c) 1999<br />

The Apache Software Foundation. All rights reserved. Redistribution and use in source and binary forms, with or<br />

without modification, are permitted provided that the following conditions are met: 1. Redistributions of source<br />

code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions<br />

in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the


documentation and/or other materials provided with the distribution. 3. The end-user documentation included with<br />

the redistribution, if any, must include the following acknowledgment: "This product includes software developed<br />

by the Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in<br />

the software itself, if and wherever such third-party acknowledgments normally appear. 4. The names "Xalan" and<br />

"Apache Software Foundation" must not be used to endorse or promote products derived from this software without<br />

prior written permission. For written permission, please contact apache@apache.org. 5. <strong>Product</strong>s derived from this<br />

software may not be called "Apache", nor may "Apache" appear in their name, without prior written permission of<br />

the Apache Software Foundation. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR<br />

IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br />

MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT<br />

SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY<br />

DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES<br />

(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS<br />

OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY<br />

THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING<br />

NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN<br />

IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br />

==========================================<br />

This software consists of voluntary contributions made by many individuals on behalf of the Apache Software<br />

Foundation and was originally based on software copyright (c) 1999, Lotus Development Corporation.,<br />

http://www.lotus.com. For more information on the Apache Software Foundation, please see<br />

(http://www.apache.org/).<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates Xerces v2.6.2 from the Apache Foundation. Such technology is subject to the<br />

following terms and conditions: The Apache Software License, Version 1.1 - Copyright (c) 1999-2004 The Apache<br />

Software Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without<br />

modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must<br />

retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary<br />

form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the<br />

documentation and/or other materials provided with the distribution. 3. The end-user documentation included with<br />

the redistribution, if any, must include the following acknowledgment: "This product includes software developed<br />

by the Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in<br />

the software itself, if and wherever such third-party acknowledgments normally appear. 4. The names "Xerces" and<br />

"Apache Software Foundation" must not be used to endorse or promote products derived from this software without<br />

prior written permission. For written permission, please contact apache@apache.org. 5. <strong>Product</strong>s derived from this<br />

software may not be called "Apache", nor may "Apache" appear in their name, without prior written permission of<br />

the Apache Software Foundation. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR<br />

IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br />

MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT<br />

SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY<br />

DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES<br />

(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS


OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY<br />

THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING<br />

NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN<br />

IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br />

================================================================<br />

This software consists of voluntary contributions made by many individuals on behalf of the Apache Software<br />

Foundation and was originally based on software copyright (c) 1999, International Business Machines, Inc.,<br />

http://www.ibm.com. For more information on the Apache Software Foundation, please see<br />

(http://www.apache.org/).<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates RSS4J v0.9.2. Such technology is subject to the following terms and conditions:<br />

Copyright (c) 1999-2002 ChurchillObjects.com All rights reserved. Redistribution and use in source and binary<br />

forms, with or without modification, are permitted provided that the following conditions are met: Redistributions<br />

of source code must retain the above copyright notice, this list of conditions and the following disclaimer.<br />

Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following<br />

disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of the<br />

copyright holder nor the names of its contributors may be used to endorse or promote products derived from this<br />

software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT<br />

HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,<br />

INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND<br />

FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR<br />

CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,<br />

OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF<br />

SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS<br />

INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN<br />

CONTRACT, STRICT LIABILITY, OR TORT, INC<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates Crimson v1.1.3. Such technology is subject to the following terms and<br />

conditions: The Apache Software License, Version 1.1. Copyright (c) 1999-2003 The Apache Software<br />

Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification,<br />

are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the<br />

above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must<br />

reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation<br />

and/or other materials provided with the distribution. 3. The end-user documentation included with the<br />

redistribution, if any, must include the following acknowledgment: "This product includes software developed by<br />

the * Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in<br />

the software itself, if and wherever such third-party acknowledgments normally appear. 4. The names "Xerces" and<br />

"Apache Software Foundation" must not be used to endorse or promote products derived from this software without<br />

prior written permission. For written permission, please contact apache@apache.org. 5. <strong>Product</strong>s derived from this<br />

software may not be called "Apache", nor may "Apache" appear in their name, without prior written * permission<br />

of the Apache Software Foundation. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR<br />

IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF<br />

MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT


SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY<br />

DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES<br />

(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS<br />

OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY<br />

THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING<br />

NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN<br />

IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br />

====================================================================<br />

This software consists of voluntary contributions made by many individuals on behalf of the Apache Software<br />

Foundation and was * originally based on software copyright (c) 1999, International * Business Machines, Inc.,<br />

http://www.ibm.com. For more * information on the Apache Software Foundation, please see *<br />

(http://www.apache.org/).<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates Jing 20030619 and Trang 20030619. Such technology is subject to the following<br />

terms and conditions: Copyright (c) 2002, 2003 Thai Open Source Software Center Ltd. All rights reserved.<br />

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the<br />

following conditions are met: Redistributions of source code must retain the above copyright notice, this list of<br />

conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice,<br />

this list of conditions and the following disclaimer in the documentation and/or other materials provided with the<br />

distribution. Neither the name of the Thai Open Source Software Center Ltd nor the names of its contributors may<br />

be used to endorse or promote products derived from this software without specific prior written permission. THIS<br />

SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY<br />

EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED<br />

WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE<br />

DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY<br />

DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES<br />

(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS<br />

OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY<br />

THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING<br />

NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN<br />

IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates RSSUTILS v1.1. Such technology is subject to the following terms and<br />

conditions: Copyright 2003 Sun Microsystems, Inc. ALL RIGHTS RESERVED Use of this software is authorized<br />

pursuant to the terms of the license found at http://developer.java.sun.com/berkeley_license.html Copyright 2003<br />

Sun Microsystems, Inc. All Rights Reserved. Redistribution and use in source and binary forms, with or without<br />

modification, are permitted provided that the following conditions are met:<br />

-Redistribution of source code must retain the above copyright notice, this list of conditions and the following<br />

disclaimer.<br />

-Redistribution in binary form must reproduce the above copyright notice, this list of conditions and the following<br />

disclaimer in the documentation and/or other materials provided with the distribution.<br />

Neither the name of Sun Microsystems, Inc. or the names of contributors may be used to endorse or promote


products derived from this software without specific prior written permission. This software is provided "AS IS,"<br />

without a warranty of any kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND<br />

WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A<br />

PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS,<br />

INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY<br />

LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS<br />

DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE,<br />

PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR<br />

PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,<br />

ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS BEEN<br />

ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. You acknowledge that this software is not designed,<br />

licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.<br />

<strong>Progress</strong> <strong>Sonic</strong> v<strong>8.5</strong> incorporates DSTC Xs3P version 1.1 from DSTC Pty Ltd. PSC will, at Licensee's request,<br />

provide copies of the source code for this third party technology, including modifications, if any, made by PSC.<br />

PSC may charge reasonable shipping and handling charges for such distribution. Licensee may also obtain the<br />

source code through http://communities.progress.com/pcom/docs/DOC-16051 by following the instructions set<br />

forth therein. - DSTC Public License. The contents of this file are subject to the DSTC Public License Version 1.1<br />

(the 'License') (provided herein); you may not use this file except in compliance with the License. Software<br />

distributed under the License is distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, either<br />

express or implied. See the License for the specific language governing rights and limitations under the License.<br />

The Original Code is xs3p. The Initial Developer of the Original Code is DSTC. Portions created by DSTC are<br />

Copyright (c) 2001, 2002 DSTC Pty Ltd. All Rights Reserved.<br />

August 2011


Contents<br />

Chapter 1: Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

Accessing <strong>Progress</strong> <strong>Sonic</strong> <strong>8.5</strong> Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

Installing <strong>Progress</strong> <strong>Sonic</strong> <strong>8.5</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

Supported Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />

Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong> . . . . . . . . . . . . . . . . . . . . 19<br />

Improvements for Responsive Business Integration: <strong>Sonic</strong> and DataXtend SI. . . . . . . . . . . . . . . . . . 20<br />

Improvements for Responsive Business Integration: <strong>Sonic</strong> and Actional. . . . . . . . . . . . . . . . . . . . . . 27<br />

What’s Also New in <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31<br />

What’s New in <strong>Sonic</strong>MQ and Management Framework. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

What’s New in <strong>Sonic</strong> Deployment Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />

What’s Changed in <strong>Sonic</strong> <strong>8.5</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />

Chapter 3: What was new and changed in prior Version 8 releases69<br />

<strong>Sonic</strong> Installer and Launcher features in 8.0.x. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70<br />

<strong>Sonic</strong>MQ and Management Framework features in 8.0.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />

<strong>Sonic</strong> ESB and Workbench features in 8.0.x. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100<br />

<strong>Sonic</strong> Deployment Manager features in 8.0.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121<br />

Chapter 4: What was new and changed in 7.5 and 7.6 releases . . . 129<br />

<strong>Sonic</strong>MQ and Managememt Framework features in Version 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130<br />

<strong>Sonic</strong> ESB and Workbench features in Version 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133<br />

Chapter 5: Learning More About the <strong>Progress</strong> <strong>Sonic</strong> <strong>Product</strong>s . . . 161<br />

<strong>Progress</strong> <strong>Sonic</strong> Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162<br />

<strong>Progress</strong> <strong>Sonic</strong> Infocenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165<br />

<strong>Progress</strong> <strong>Sonic</strong> Education and Training. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165<br />

<strong>Progress</strong> Software Developers Network (PSDN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165<br />

<strong>Progress</strong> <strong>Sonic</strong> Technical Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166<br />

<strong>Progress</strong> <strong>Sonic</strong> Evaluation Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 11


Contents<br />

12 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Chapter 1 Overview<br />

This is <strong>Progress</strong> <strong>Sonic</strong> <strong>8.5</strong>, a point release that contains new features that enhance the<br />

product as well feature requests and issues reported by customers.<br />

<strong>Progress</strong> <strong>Sonic</strong> is delivered in three installers:<br />

● <strong>Progress</strong> <strong>Sonic</strong> Installer sets up <strong>Sonic</strong> <strong>8.5</strong> development environments, deployment<br />

Domain Managers, <strong>Sonic</strong> Deployment Manager, and administrative tools. The utilities<br />

that upgrade from 7.5, 7.6, and 8.0 Domain Managers are included. When downloaded,<br />

unpack it. Installer requires a 1.5 or 1.6 JVM on UNIX and Linux machines to run the<br />

installer; it can use and install its preferred 1.6 JVM on Windows. Run install.exe<br />

(Windows) or install.bin (UNIX, Linux.)<br />

● <strong>Progress</strong> <strong>Sonic</strong> Container Launcher installs lightweight resources on systems that run<br />

<strong>Sonic</strong> containers, and the utilities for upgrading <strong>Sonic</strong> 7.5 and 7.6 installations. A<br />

Launcher installation will be dynamically upgraded and <strong>update</strong>d by the domains to<br />

which its containers connect. When downloaded, unpack it. Installer requires a 1.5 or<br />

1.6 JVM on UNIX and Linux machines to run the installer; it can use and install its<br />

preferred 16 JVM on Windows. Run install_container_launcher.exe (Windows) or<br />

install_container_launcher.bin (UNIX, Linux.)<br />

● <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong>r, when available, advances a <strong>Sonic</strong> Installer location to the<br />

<strong>Update</strong>r's version, typically a Service Pack. Service Packs are cumulative so if you<br />

skipped a service pack, a higher version will include all changes in earlier Service<br />

Packs. When downloaded, unpack it. <strong>Update</strong>r requires a 1.5 or 1.6 JVM to run the<br />

installer, which should be the JVM that supports the installation you intend to <strong>update</strong>.<br />

Confirm that the JVM is on the path before you launch the <strong>update</strong>r. Run install.exe<br />

(Windows) or install.bin (UNIX, Linux.)<br />

Download packages are available at the <strong>Progress</strong> Electronic Software Download (ESD) site<br />

for additional <strong>Sonic</strong>MQ clients (C, C++, COM, and .NET) and JCA Resource Adapters for<br />

JBoss, WebSphere, and WebLogic.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 13


Chapter 1: Overview<br />

Accessing <strong>Progress</strong> <strong>Sonic</strong> <strong>8.5</strong> Documentation<br />

<strong>Sonic</strong> <strong>8.5</strong> products are installed with a welcome page at their installation root for access<br />

to <strong>Progress</strong> resources and documentation. You can access <strong>Sonic</strong> <strong>8.5</strong> documentation at its<br />

remote site. See the downloads page at the remote site for documentation packages and<br />

archives. Take time to review the release notes list of known issues, and—for current<br />

customers—a listing of the resolved issues in this release.<br />

Installing <strong>Progress</strong> <strong>Sonic</strong> <strong>8.5</strong><br />

The following procedures provide the general idea of how new and existing <strong>Sonic</strong> users<br />

create <strong>Sonic</strong> product installations in release <strong>8.5</strong>. Open the <strong>Progress</strong> <strong>Sonic</strong> Installation and<br />

Upgrade Guide for detailed instructions on installing, and upgrading installations as well<br />

as information about silent installations.<br />

◆ If You Are New to <strong>Sonic</strong>...<br />

1. Use the <strong>Sonic</strong> Installer <strong>8.5</strong> to establish each development environment—<strong>Sonic</strong> ESB<br />

or <strong>Sonic</strong>MQ Development—and then start its Domain Manager.<br />

2. Use the <strong>Sonic</strong> Installer <strong>8.5</strong> to establish each deployment environment (Domain<br />

Manager), and then start its Domain Manager.<br />

3. Use the <strong>Sonic</strong> Installer <strong>8.5</strong> to distribute just Administration Tools.<br />

4. Use the Container Launcher Installer <strong>8.5</strong> to enable each distributed system to connect<br />

and run containers in one of your installed domains.<br />

5. Unpack downloaded <strong>8.5</strong> C clients, .NET client, and JCA adapters on development<br />

and distributed deployment systems.<br />

◆ If You Are Upgrading a <strong>Sonic</strong> 8.0 Topology...<br />

1. Start each <strong>Sonic</strong>MQ development or deployment Domain Manager (for ESB<br />

development, stop everything), stop all associated tools, and then run the <strong>Sonic</strong><br />

Installer pointing to the <strong>Progress</strong> <strong>Sonic</strong> Domain Manager’s installation location.<br />

2. Stop tools in each Administration Tools installation, and then run the <strong>Sonic</strong> Installer<br />

to install the latest tools.<br />

3. Unpack downloaded <strong>8.5</strong> C clients, .NET client, and JCA adapters in a new location<br />

on development and deployment systems, and then use them to run the clients.<br />

Open the <strong>Progress</strong> <strong>Sonic</strong> Installation and Upgrade Guide chapter “Upgrading from 7.5 or<br />

7.6 to <strong>Sonic</strong> <strong>8.5</strong>” for detailed procedures for basic upgrades as well as zero-downtime<br />

14 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Installing <strong>Progress</strong> <strong>Sonic</strong> <strong>8.5</strong><br />

upgrades for replicated brokers, clusters, and fault-tolerant management frameworks. You<br />

might also want to review the resolved issues in the <strong>Sonic</strong> <strong>8.5</strong>.0 release notes.<br />

◆ If You Are Upgrading a <strong>Sonic</strong> 7.5 or 7.6 Topology...<br />

1. Use the <strong>Sonic</strong> Installer <strong>8.5</strong> to establish each development environment—<strong>Sonic</strong><br />

Workbench or <strong>Sonic</strong>MQ Development—on a machine with a corresponding version<br />

7 installation, but do not configure the installation. Start the version 7 Domain<br />

Manager, and then perform the upgrade.<br />

2. Use the <strong>Sonic</strong> Installer <strong>8.5</strong> to establish each deployment environment (Domain<br />

Manager) on a machine with a corresponding version 7 installation, but do not<br />

configure the installation. Start the version 7 Domain Manager, and then perform the<br />

upgrade.<br />

3. Use the <strong>Sonic</strong> Installer <strong>8.5</strong> to distribute just Administration Tools to administrator<br />

machines.<br />

4. Use the Container Launcher Installer <strong>8.5</strong> to upgrade each distributed system that has<br />

a version 7 deployment. Then perform the upgrade of that location to <strong>8.5</strong> and<br />

connection to the <strong>8.5</strong> Domain Manager.<br />

5. Unpack downloaded <strong>8.5</strong> C clients, .NET client, and JCA adapters on development<br />

and distributed deployment systems, and then use them to run the clients. You should<br />

not have to recompile applications.<br />

Open the <strong>Progress</strong> <strong>Sonic</strong> Installation and Upgrade Guide chapter “Upgrading Version 8<br />

Domains and Tools7.5 or 7.6 to <strong>Sonic</strong> <strong>8.5</strong>” for detailed procedures for basic upgrades as<br />

well as zero-downtime upgrades for replicated brokers, clusters, and fault-tolerant<br />

management frameworks. You might also want to review the resolved issues in the <strong>Sonic</strong><br />

<strong>8.5</strong>.0 release notes.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 15


Chapter 1: Overview<br />

Supported Standards<br />

Standards supported in <strong>Progress</strong> <strong>Sonic</strong> <strong>8.5</strong> include the following:<br />

Group Standard Version<br />

Web Services REST<br />

SOAP 1.1<br />

SOAP 1.2<br />

SOAP with Attachments 2000<br />

WSDL 1.1<br />

WS-BP 1.0<br />

WS-Addressing<br />

WS-Policy 2004<br />

WS-Policy 1.2<br />

WS-Security 1.0<br />

WS-RM<br />

JAX-WS 2.1<br />

JAX-RS 1.0<br />

BPEL 2.0<br />

MTOM 2005<br />

Transports and Protocols JMS 1.0/1.1<br />

HTTP 1.0/1.1<br />

HTTPS<br />

16 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Platforms<br />

<strong>Sonic</strong> advanced the supported JVMs and default sizing of system resources.<br />

Java Runtime Environment<br />

Supported Standards<br />

See the <strong>Progress</strong> <strong>Sonic</strong> supported platforms page for <strong>8.5</strong> at www.progress.com/sonic.<br />

Be sure the installer versions and tools use 32-bit or 64-bit JVMs and downloads as<br />

appropriate to target machine architectures.<br />

Java heap size settings<br />

The default Java heap initial and max size settings on management containers are:<br />

-Xms64m -Xmx512m<br />

Note Upgrades or deployments on new machines might experience issues with JVM memory<br />

usage. Be sure to test applications on anticipated machine types and JVMs.<br />

Compatibilities with Other <strong>Progress</strong> <strong>Product</strong>s<br />

This release of <strong>Sonic</strong> requires that associated <strong>Progress</strong> products use specific versions:<br />

● Actional — Management servers and agents must be release 8.2.3<br />

● Dataxtend SI — Must be at release <strong>8.5</strong> and its Eclipse at 3.6<br />

Install or upgrade these products to ensure compatibility.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 17


Chapter 1: Overview<br />

18 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Chapter 2 What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

This chapter describes new and enhanced functionality in release <strong>8.5</strong> of the <strong>Progress</strong><br />

<strong>Sonic</strong> products in the following sections:<br />

● “Improvements for Responsive Business Integration: <strong>Sonic</strong> and DataXtend SI”<br />

● “Improvements for Responsive Business Integration: <strong>Sonic</strong> and Actional”<br />

● “What’s Also New in <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench”<br />

● “What’s New in <strong>Sonic</strong>MQ and Management Framework”<br />

● “What’s New in <strong>Sonic</strong> Deployment Manager”<br />

● “What’s Changed in <strong>Sonic</strong> <strong>8.5</strong>”<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 19


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

Improvements for Responsive Business Integration:<br />

<strong>Sonic</strong> and DataXtend SI<br />

<strong>Progress</strong>® <strong>Sonic</strong>® <strong>8.5</strong> introduces the following features to improve <strong>Progress</strong>®<br />

DataXtend® Semantic Integrator (SI) <strong>8.5</strong> integration:<br />

● “Improved deployment option to manage external generated packages”<br />

● “DataXtend SI Invocation Support for Multi-part Messages”<br />

● “Invoking a data service operation from a <strong>Sonic</strong> ESB itinerary”<br />

Improved deployment option to manage external generated<br />

packages<br />

The enhanced packaging usability feature from DataXtend SI enables you to package the<br />

required artifacts as a <strong>Sonic</strong> Archive (XAR) file. You can also generate a package with<br />

multiple services in a single archive. The package is then uploaded to the <strong>Sonic</strong> Directory<br />

Services to make the exposed DataXtend SI Services available in ESB.<br />

<strong>Sonic</strong> <strong>8.5</strong> provides an improved deploy folder for a <strong>Sonic</strong> project in Workbench to<br />

manage external generated packages. This enables you to manage integration with other<br />

products, such as DataXtend SI, in a better way. You can also use this new deployment<br />

option to manage any other XAR files. You can now:<br />

● “Expand the XAR archives” on page 21<br />

● “Customize the XAR files or XAR folder contents for <strong>Sonic</strong> deployments by setting<br />

flags such as ignore or overwrite” on page 21<br />

● “Create logical link with the external source XAR files” on page 21<br />

● “Notify when a source XAR has been modified” on page 22<br />

20 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Improvements for Responsive Business Integration: <strong>Sonic</strong> and DataXtend SI<br />

Expand the XAR archives<br />

In the Project Explorer view, click the icon on the left hand side of the XAR file to<br />

expand it and view its details, as shown:.<br />

Customize the XAR files or XAR folder contents for <strong>Sonic</strong> deployments by<br />

setting flags such as ignore or overwrite<br />

You can upload the XAR files to the Directory Service from the <strong>Sonic</strong> Workbench. Before<br />

uploading the XAR files, you can define the rules for uploading the XAR files using the<br />

overwrite, ignore or reset option. You can right-click the artifacts to select the Overwrite<br />

Existing option to overwrite the available artifacts and provide the latest copy of the<br />

service configuration from XAR based on the nature of changes encountered for the<br />

Service Configuration file. You can also right-click the artifacts and select the Ignore<br />

option if you want to ignore an existing file during upload.<br />

If you execute any ignore or overwrite action, an import properties file is created by <strong>Sonic</strong><br />

Workbench if the properties file does not exist and you can see the correct status of the<br />

configured elements. By default, no properties file is present and <strong>Sonic</strong> Workbench<br />

retains its overwriting behavior during upload.<br />

Create logical link with the external source XAR files<br />

When you are working with DataXtend SI and <strong>Sonic</strong> in the same Eclipse installation and<br />

in the same workspace, you can create a logical link to the XAR file in the DataXtend SI<br />

project directory’s deployable folder. If you re-export the file in the SI Workbench, the<br />

<strong>Sonic</strong> project automatically has the <strong>update</strong>d XAR file. However, if the XAR file is<br />

<strong>update</strong>d in the DataXtend SI project, you will need to re-upload it and restart any<br />

containers in which its data services are deployed. The Copy Deploy Archive into deploy<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 21


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

folder checkbox indicates whether to copy the selected archive or create a logical link to<br />

it. Clear the checkbox to create the logical link.<br />

Notify when a source XAR has been modified<br />

When a DataXtend SI XAR is changed or is regenerated while linking the XAR using the<br />

Workspace link, a gray icon is added on the XAR and deploy folder. When a XAR folder<br />

is linked to a local file system and the contents in the local file system change, you must<br />

refresh the project or deploy folder to see the modifications. You must explicitly upload<br />

the XAR file again to push the modified contents to Directory Services.<br />

Invoking a Typed Service Instance from a <strong>Sonic</strong> ESB Itinerary<br />

This feature provides an interface to be associated with a service configuration. It also<br />

provides development-time access to the interface to facilitate creating an invocation step.<br />

<strong>Sonic</strong> <strong>8.5</strong> has introduced a notion of Typed Services wherein a Service Instance will have<br />

a typed interface. DataXtend SI service is rewritten as a typed service.<br />

You can retrieve an initialized Typed Service instance ESBDL contract from its<br />

configuration (XQServiceConfig) in the DS. A Typed Service Instance has many<br />

operations available. The interface of each of these operations can be retrieved from its<br />

ESBDL. For invoking a Typed Service in <strong>Sonic</strong> ESB Itinerary, you must:<br />

● Configure a service step to invoke the Typed Service Instance<br />

● Identify the Typed Service Operation<br />

● Map from in-flight process message to the service invocation parameters. On the<br />

service return side, map from service output/fault parameters to the next in-flight<br />

process message. See “DataXtend SI Invocation Support for Multi-part Messages” on<br />

page 24.<br />

22 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Improvements for Responsive Business Integration: <strong>Sonic</strong> and DataXtend SI<br />

Configuring a service step to invoke Typed Service Instance<br />

In addition to the standard way of configuring a service step in ESB Itinerary, <strong>Sonic</strong> <strong>8.5</strong><br />

provides an enhanced Project Explorer View, to have all the service instances listed under<br />

the Domain node. For typed services such as, DataXtend SI Service, you can further<br />

expand the service instance node, to view the list of available operations. Drag and drop<br />

on editor canvas is enabled for both service instance & operation nodes. When you dragand-drop<br />

a service instance or operation, a new service step is created & configured for<br />

that particular service instance and operation.<br />

The following screen capture displays a service step in the process itinerary when you<br />

drag-and-drop a service operation to the process itinerary:<br />

The SI decorator indicates that it is a DataXtend SI data service.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 23


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

Identifying a DataXtend SI Service Operation<br />

<strong>Sonic</strong> <strong>8.5</strong> provides a Choose an Operation dialog for an operation ID to list all the<br />

available operations for the given service instance. From this list, you can select the<br />

operation to invoke. With the operation ID set, mapping pages is set/reset with the<br />

interface parameters defined for the given operation. You can also map to/from these<br />

interface parameters.<br />

The operation ID that you want to invoke is persisted to the ESB process as a runtime<br />

parameter of type string.<br />

Operation ID is persisted as a string having the following pattern:<br />

{interfaceName}.{operationName}. If interface name is not available Default will be<br />

appended to the operation name instead of interface name.<br />

DataXtend SI Invocation Support for Multi-part Messages<br />

This feature lets you configure the DataXtend SI data service operation to return all values<br />

and map these values into multi-part messages with appropriate content ID and type<br />

information.<br />

A DataXtend SI data service operation can return an arbitrary collection of values in<br />

addition to the defined output parameters. These collections should be mapped to new<br />

parts, headers, and process context properties to compose the XQmessage with appropriate<br />

content ID and type information. To support this type of mapping, <strong>Sonic</strong> extends ESBDL<br />

definition to include support for collection parameters. That is, the interface parameter, if<br />

24 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Improvements for Responsive Business Integration: <strong>Sonic</strong> and DataXtend SI<br />

marked as "collection = true", represents a collection of values and is rendered as<br />

parameters[] {xq:paramHolderType}. In the response mapping page, you can define a<br />

mapping rule for such interface parameters and state whether the collection of values are<br />

to be added as:<br />

● New Message Parts<br />

● New Message Headers<br />

● New Process Context Properties<br />

As part of the DataXtend SI service, the typed service works on the request interface<br />

parameters and set the output context that is output parameters from service context. You<br />

should ensure that these output parameters are propagated to the next in-flight process<br />

message; that is, the message going out of the service. To achieve this, you must define<br />

response mapping rules from service output parameters to next in-flight process message<br />

constructs; that is, headers, parts, and process context properties. In the event of a service<br />

fault, XQmessage is added to the service fault box and the fault context is set; that is, fault<br />

parameters for the given operation are specified. You must define fault mapping rules to<br />

ensure the fault parameters are propagated in the fault message.<br />

In the mapping pages, the mapping rule for interface parameter with a collection of values<br />

is displayed. However, at the time of process run, this mapping rule is evaluated for each<br />

collection element. This is indicated to runtime by adding the following syntax to source<br />

participant expression: ${esbdl.output'purchaseOrders'.each}<br />

On the target side, pattern/expression is evaluated for every collection element and<br />

generates a unique identifier for the given XQMessage construct type (Part, Header, and<br />

Process Context property). This construct is initialized with the service response<br />

parameter value (after applying transformation actions).<br />

You can also configure the mapping rule with transformation details. This transformation<br />

action is applied to each element in the collection. For configuring transformation action,<br />

all supported transformation actions are listed. You must correctly configure the<br />

transformation actions. Also, because the source parameter is a collection of unknown<br />

values, configured transformation action might or might not be applicable for every<br />

element in the collection. You can further configure transformation details for the<br />

mapping rule. Available transformation actions are filtered on the basis of type and<br />

content type of source interface parameters.<br />

<strong>Sonic</strong> <strong>8.5</strong> has changed the following dialog boxes to provide for the collection values:<br />

● Mapping Rule Participants dialog box — While specifying the target,<br />

pattern/expression is evaluated for every collection element and an unique identifier<br />

is generated for the given XQMessage construct type (Part, Header, and Process Context<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 25


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

property). This construct is initialized with the service response parameter value<br />

(after applying transformation actions).<br />

● Expression dialog box— In the response mapping page, <strong>Sonic</strong> <strong>8.5</strong> lets you define a<br />

mapping rule for interface parameters and state whether the collection of values are<br />

to be added as Header (Pattern), Message (Pattern), or Process Context (Pattern):<br />

Invoking a data service operation from a <strong>Sonic</strong> ESB itinerary<br />

A DataXtend SI data service provides an interface of operations that the development<br />

tools can use to facilitate creating an invocation step.<br />

For more information, see Chapter 10 “Getting started with <strong>Sonic</strong> ESB and DataXtend<br />

SI” in the “<strong>Progress</strong> <strong>Sonic</strong> ESB Developer's Guide”.<br />

26 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Improvements for Responsive Business Integration: <strong>Sonic</strong> and Actional<br />

Improvements for Responsive Business Integration:<br />

<strong>Sonic</strong> and Actional<br />

<strong>Progress</strong>® <strong>Sonic</strong>® <strong>8.5</strong> introduces the following features to improve integration with<br />

<strong>Progress</strong>® Actional® 8.2.3:<br />

● “Actional Support for <strong>Sonic</strong> Connect”<br />

● “Actional SDK Version Upgrade”<br />

● “Configuring Actional Interceptors”<br />

● “Actional - Multi-part Message Payload Capture”<br />

Actional Support for <strong>Sonic</strong> Connect<br />

The <strong>Sonic</strong> Connect and Actional interceptors provide visibility into inbound and<br />

outbound RESTful and SOAP calls from the <strong>Sonic</strong> Connect stack:<br />

● Installed with <strong>Sonic</strong> ESB:<br />

■ <strong>Sonic</strong> Connect CXF Jetty Interceptor<br />

● Available from <strong>Progress</strong> Actional:<br />

■ Actional CXF Interceptor<br />

■ Actional Servlet Interceptor<br />

These interceptors enable you to instrument the SOAP and REST interactions of a<br />

<strong>Sonic</strong> Connect service.<br />

◆ To import the Actional Interceptors into the Directory Service:<br />

1. Connect to the domain manager and open the <strong>Sonic</strong> Management Console.<br />

2. Select the Configure tab, then in the left pane select the node Resources.<br />

3. Within Resources, create a folder named Actional, then a subfolder named 8.2.3.<br />

4. At that location, select Action > Import File to open the Select Import File dialog box.<br />

5. Browse to the location of the actional-cxf-interceptor.jar and actionalservlet-interceptor.jar<br />

files, select the files, and click Import. The jar files are<br />

imported to the Directory Services and are available for configuration.<br />

For more information, see the chapter “Using Actional with <strong>Sonic</strong> Components” in the<br />

“<strong>Progress</strong> <strong>Sonic</strong> ESB Configuration and Management Guide”.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 27


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

Actional SDK Version Upgrade<br />

Prior to <strong>Sonic</strong> <strong>8.5</strong> release, the Actional SDK was embedded in the MF container archive<br />

(MFcontainer.car). <strong>Sonic</strong> <strong>8.5</strong> release enables independent upgrade of the Actional SDK.<br />

To specify a preferred or upgraded Actional SDK, open a management container’s<br />

Resources tab, as shown:<br />

The Actional SDK Archive and the Actional Plug Maker Archive are described as<br />

follows:<br />

Property Description<br />

Actional SDK<br />

Archive<br />

Actional Plug<br />

Maker<br />

Archive<br />

Specifies the <strong>Progress</strong> Actional SDK archive file for this container. When<br />

an <strong>update</strong>d Actional SDK file is available, and you choose to locate in a<br />

different path or name, you can specify that this container use the <strong>update</strong>d<br />

Actional SDK file.<br />

Specifies the <strong>Progress</strong> Actional Plug Maker archive file for this container.<br />

When an <strong>update</strong>d Actional Plug Maker file is available, and you choose<br />

to locate in a different path or name, you can specify that this container<br />

use the <strong>update</strong>d Actional Plug Maker file.<br />

For more information, see Chapter 4 “Configuring Containers and Collections” of the<br />

<strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and Management Guide.<br />

28 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Improvements for Responsive Business Integration: <strong>Sonic</strong> and Actional<br />

Configuring Actional Interceptors<br />

When using <strong>Progress</strong> Actional Management Server with <strong>Sonic</strong> ESB, you might need to<br />

add additional Actional interceptors to a <strong>Sonic</strong> container to improve its visibility.<br />

Common use cases for adding interceptors to a <strong>Sonic</strong> container are:<br />

● Using the Actional JDBC interceptor to instrument the database interactions of a<br />

<strong>Sonic</strong> Database service.<br />

● Using the Actional Servlet and CXF interceptors to instrument the SOAP and REST<br />

interactions of a <strong>Sonic</strong> Connect service.<br />

To set up the interceptor on the container, do the following:<br />

a. Import the interceptor JARs into sonicfs.<br />

b. On the container’s Resources tab, enter the classpath of each of the interceptor<br />

JARs.<br />

c. On the container’s Environment tab, set a com.actional.aops system property for<br />

each interceptor to enable it.<br />

<strong>Sonic</strong> automatically enables the Actional PlugMaker Java agent when the property has<br />

been set.<br />

For example, to enable the Actional JDBC interceptor:<br />

● Add the classpath of actional-jdbc-interceptor.jar as a prepended classpath.<br />

● Add the system property named com.actional.aops with the value<br />

com/actional/lg/interceptor/jdbc/jdbc.aop.<br />

Refer to <strong>Progress</strong> Actional’s Interceptor Guide for details about the com.actional.aops<br />

property.<br />

See the <strong>Progress</strong> <strong>Sonic</strong> ESB Configuration and Management Guide chapter “Using<br />

Actional with <strong>Sonic</strong> Components” for more information about Actional Servlet and CXF<br />

interceptors to instrument the SOAP and REST interactions of a <strong>Sonic</strong> Connect service.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 29


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

Actional - Multi-part Message Payload Capture<br />

This feature allows you to capture multiple message parts for audit/inspection by Actional<br />

so that the user can get visibility into their process behavior.<br />

To leverage Actional multipart support, <strong>Sonic</strong> <strong>8.5</strong> provides the <strong>Progress</strong> Actional 8.2.3<br />

SDK. Actional Management Servers and Agents must correspondingly be at 8.2.3 or<br />

higher.<br />

For more information, see “Impact of Multipart Message Capture on Legacy Behaviors”<br />

on page 64.<br />

The Payload Capture is also documented under “Managing Containers” in the “Tasks”<br />

section of the Getting Started with <strong>Progress</strong> <strong>Sonic</strong> Workbench online help.<br />

30 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


What’s Also New in <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench<br />

What’s Also New in <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench<br />

The following features are also introduced in <strong>Sonic</strong> ESB and the <strong>Sonic</strong> Workbench in the<br />

<strong>8.5</strong> release:<br />

● “Directory Service (DS) Connect for Eclipse” on page 31<br />

● “Message Mapping Enhancements” on page 34<br />

● “Reduce Contention in endpoint.call()” on page 43<br />

● “Per-Message URL Override for <strong>Sonic</strong> Connect” on page 43<br />

● “Domain View Integration” on page 44<br />

● “Scrollbar enhancements to Workbench Views” on page 46<br />

● “Restart & Reload Simplification” on page 46<br />

● “Lazy-Load Palette Categories” on page 46<br />

● “Report a Technical Issue” on page 46<br />

● “WS-I compliant WSDLs for <strong>Sonic</strong> Connect” on page 48<br />

● “SMC Performance in Large Domains” on page 49<br />

● “ESB support for global RME destination” on page 49<br />

● “Latest DataDirect Drivers” on page 49<br />

● “New ESB Service Metrics and Notifications” on page 49<br />

Directory Service (DS) Connect for Eclipse<br />

The <strong>Sonic</strong> DS Connect component is an independent feature and helps an Eclipse<br />

platform client such as DataXtend SI to:<br />

● Connect to a <strong>Sonic</strong> Directory Service and browse through <strong>Sonic</strong> ESB configurations<br />

● Provide contract details (if available) for a <strong>Sonic</strong> ESB configuration<br />

Using this component, you can use any other <strong>Progress</strong> product to achieve the same<br />

functionality. This also allows the multi-product developer to integrate with a <strong>Sonic</strong><br />

endpoint with a reduced effort and time.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 31


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

The new DS connect component has introduced modification in the following existing<br />

interface:<br />

● Domain Connection — The Domain Connection dialog box is modified and has been<br />

divided into two sections: Domain Connection Details and Workbench Settings as<br />

shown in the following screen capture:<br />

This dialog box is documented under “<strong>Sonic</strong> Domain” in the “<strong>Sonic</strong> Workbench basics”<br />

section of the Getting Started with <strong>Progress</strong> <strong>Sonic</strong> Workbench online help.<br />

The DS Connect feature provides the following new interfaces:<br />

● <strong>Sonic</strong> Domain Connection<br />

● ESB Address Chooser<br />

<strong>Sonic</strong> Domain Connection<br />

This information is available in the online help. It is presented here as a documentation<br />

workaround for a defective link behavior observed in 64-bit Eclipse on 64-bit Linux.<br />

The <strong>Sonic</strong> Domain Connection dialog box opens when the system cannot establish a<br />

connection with the available domain connection details in the preference page before<br />

using the ESB Address Selection dialog for browsing the DS contents. After you provide<br />

correct connection details and press connect, the domain connection is established with<br />

the details given in the dialog box and <strong>update</strong>s the preference page with new connection<br />

details.<br />

32 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


◆ To connect to a <strong>Sonic</strong> domain:<br />

What’s Also New in <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench<br />

1. In the Domain Connection Details section, specify or modify the following settings:<br />

Property Description<br />

Domain Name Name of the domain that you want to connect. The default is<br />

2. Click Connect.<br />

ESB Address Chooser<br />

You can use the ESB Address chooser to select the available ESB configurations. You can<br />

select the ESB address from a list of existing addresses obtained from the <strong>Sonic</strong> Domain.<br />

You can use the following icons to show Endpoints, Services, and ESB processes.<br />

To select the ESB Address:<br />

1. In the Selection field, specify to filter the possible configurations.<br />

2. Click OK.<br />

Domain1<br />

Connection URL(s) URL(s) of the management broker(s). The default is<br />

tcp://hostname:2506.<br />

User Name The user name to connect to the domain manager. The default is<br />

Administrator.<br />

Password The password to connect to the domain manager. The default is<br />

Administrator.<br />

Icons Description<br />

Click the Show Endpoints icon to view the list of available endpoints.<br />

Click the Show Services icon to view the list of available services.<br />

Click the Show Processes icon to view the list of available processes.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 33


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

Message Mapping Enhancements<br />

The following changes are introduced in the <strong>Sonic</strong> Workbench message mapping page:<br />

● Incorporate Custom & Constant Expression Support in Expression & Mapping Rule<br />

Participants dialog box<br />

● Static set of root nodes replaced with Advanced node<br />

● Filter Transformation Actions as per source and target of Mapping Rule<br />

● Editable transformation action<br />

● Provision of double-click option to edit MappingRule<br />

● Availability of Tabular View in the message mapping page<br />

● Displaying validation markers in message mapping pages<br />

● Support EL Expressions for Runtime Parameters<br />

● File Resource mapping<br />

34 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


What’s Also New in <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench<br />

Custom and Constant expression support in Expression dialog box<br />

This feature enables the <strong>Sonic</strong> developer to define custom and constant expressions using<br />

the Expression dialog box.<br />

The following screen capture shows that when you select Custom from the Source Type<br />

list, an Expression box is displayed. In this Expression box, you can define your custom<br />

expression.<br />

The following screen capture shows that when you select Constant from the Source Type<br />

list, a Value box is displayed. In this Value box, you can define your constant value.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 35


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

Custom and Constant expression support in Mapping Rule Participants<br />

dialog box<br />

To create a new mapping rule the <strong>Sonic</strong> developer can directly pull a connection from a<br />

source node to a target node. If the source and target both are mappable, a mapping rule<br />

is created; otherwise, Mapping Rule Participants dialog is launched seeking user input.<br />

In the previous release, there was no support for Constant Value and Custom<br />

Expressions in the Mapping Rule Participants dialog. You had to first add each mappable<br />

individually and then pull connections directly between mappables. The <strong>Sonic</strong> <strong>8.5</strong> release<br />

now enables the <strong>Sonic</strong> developer to define custom and constant expressions using the<br />

Mapping Rule Participants dialog box.<br />

36 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


What’s Also New in <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench<br />

Static set of root nodes replaced with Advanced node<br />

In the previous <strong>Sonic</strong> release, following static components were present in the source and<br />

destination map:<br />

● Constant<br />

● Property<br />

● System<br />

● Container<br />

● Custom<br />

All these components are now merged into one and is called Advanced node.<br />

Filter Transformation Actions as per source and target of Mapping Rule<br />

In prior releases of <strong>Sonic</strong>, in message mapping pages, all the transformation actions<br />

supported by runtime were made available to you for any given MappingRule. You had to<br />

correctly set the right transformation action considering the source and target involved. In<br />

the current release of <strong>Sonic</strong>, tools make only those transformation actions available which<br />

are valid for the given context, that is, mapping rule source and target. This filtering is<br />

done, considering MappingRule source type and target type, and type supported by a<br />

given transformation action.<br />

For more information, see Chapter 3 “Tasks” in the “<strong>Progress</strong> <strong>Sonic</strong> ESB Developer's<br />

Tools Guide”.<br />

Editable transformation action<br />

MappingRule transformation action details are persisted as two attributes: action and use.<br />

For example: .<br />

To support advanced users, tools provide editable transformation action combo. This<br />

enables you to type the action string which display another text box seeking action details.<br />

Values entered by the user is persisted to .esbp as it is.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 37


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

Provision of double-click option to edit Mapping Rule<br />

This feature enables you to edit Mapping Rule by double-clicking the connection map<br />

available between source and destination. For example, if you double-click a connection<br />

and then click the 'Edit Mapping Rule' action, the Mapping Rule Participants dialog box<br />

open in editable format.<br />

Availability of Tabular View in the message mapping page<br />

The tabular view provides a snapshot of all the mapping rules defined for a step. To see<br />

the transformation and target action details of a mapping rule in the graphical view, you<br />

have to select the rule and then view the details in the lower half of the mapping page.<br />

However, in the tabular view, a complete snapshot of the mapping rule, including<br />

transformation action and target action, is provided.<br />

The following screen capture displays a tabular view in the message mapping page:<br />

38 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


What’s Also New in <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench<br />

Displaying validation markers in message mapping pages<br />

Errors encountered on validating an ESB process are displayed in the ESB editor root<br />

page. Validation markers are set on the resource for each invalid mapping rule. When you<br />

move the mouse pointer over the validation marker, the error is displayed, as shown in the<br />

following image:<br />

For more information, see Chapter 3 “Tasks” in the “<strong>Progress</strong> <strong>Sonic</strong> ESB Developer's<br />

Tools Guide”.<br />

Support EL Expressions for Runtime Parameters<br />

<strong>Sonic</strong> <strong>8.5</strong> release provides support for runtime parameters at message mapping level in<br />

addition to defining process context properties in the request/ response/ fault mapping<br />

pages.<br />

Prior to <strong>Sonic</strong> <strong>8.5</strong> release, you had to set runtime parameter value in the Service page or<br />

you had to map the parameter to incoming XQMessage by clicking the checkbox in runtime<br />

parameters table. Limitation to this approach was that you cannot add any new parameter<br />

and you had to use the existing parameters defined at service type level.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 39


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

In the message mapping user interface, a Step Context node is added when you right-click<br />

the Advanced node on both the Source and Destination sides. You can now define new<br />

runtime parameters under the node as shown in the following screen capture:<br />

When you right-click the Step Context node and then click Add New. The Expression<br />

dialog box opens.<br />

Note that the Step Context Parameter box is populated with the service runtime<br />

parameters and is editable. You can type any parameter if required and this parameter is<br />

added to runtime parameters and is specific to the step.<br />

40 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


What’s Also New in <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench<br />

If you provide mapping between the Step Context nodes of Source and Destination, the<br />

following Mapping Rule Participants dialog box opens:<br />

File Resource mapping<br />

<strong>Sonic</strong> Workbench <strong>8.5</strong> release enables you to define a mapping rule using a file as a source.<br />

You can specify a file as a source by using the Expression dialog box or the Mapping Rule<br />

Participants dialog box. You must provide the following properties:<br />

File URL: You can select a file from the <strong>Sonic</strong> file system or the local file system. You can<br />

also create a new file and specify it as a mapping source.<br />

Dynamic: After you specify a file name in the File URL field, you can check the field to<br />

make the ESB process read the file from the disk instead of the cache memory. By default,<br />

the file is read from the cache memory.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 41


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

When you right-click the Advanced node and select Add New, the Expression dialog box<br />

opens. You can select File Resource from the Source Type drop-down box and specify the<br />

required properties.<br />

When you create a mapping rule using the Mapping Rule Participants dialog box, select<br />

File Resource from the Source Type drop-down box and specify the required properties.<br />

42 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Reduce Contention in endpoint.call()<br />

What’s Also New in <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench<br />

The XQEndpoint.call() operation allows a custom Java service to programmatically<br />

invoke an ESB endpoint.<br />

During calls to the XQEndpoint.call API, ESB sets the ReplyTo destination in the<br />

message from a fixed pool of temporary destinations. After the API call returns, the<br />

temporary destination is returned to the pool and re-used for subsequent API calls. In<br />

events where the API calls exceed the timeout interval, the temporary destinations are<br />

returned to the pool. If a response arrives for the timed out request, then it might be<br />

incorrectly treated as the response for a subsequent request.<br />

To resolve this issue, you can use one of the following methods:<br />

● Set the <strong>Sonic</strong>ESB.RefreshDestinationsOnCall system property to true. When you set<br />

this property, a unique temporary destination is used for each call. This can lead to a<br />

large number of temporary destinations if a large number of concurrent<br />

Endpoint.call API calls are expected.<br />

● Set the <strong>Sonic</strong>ESB.UniqueJMSCorrelationIDOnCall system property to true. When you<br />

set this property, each message is assigned a unique JMSCorrelationID before the<br />

Endpoint.call API call.<br />

This information has been added to the <strong>Sonic</strong> Workbench online help in the Workbench<br />

and in its PDF version, <strong>Sonic</strong> ESB Development Tools guide.<br />

Per-Message URL Override for <strong>Sonic</strong> Connect<br />

<strong>Sonic</strong> Connect Service allows you to override the destination URL of a web service<br />

invocation step using a request mapping rule.<br />

This information has been added to the <strong>Sonic</strong> Workbench online help in the Workbench<br />

and in its PDF version, <strong>Sonic</strong> ESB Development Tools guide.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 43


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

Domain View Integration<br />

The Project Explorer in <strong>Sonic</strong> Workbench has been refurbished and it now enables you to:<br />

● View ESB Configurations<br />

● Drag and drop support for ESB Address nodes<br />

● Quick way to create ESB Process from the Project Explorer<br />

View ESB Configurations<br />

In <strong>Sonic</strong> <strong>8.5</strong> release, the ESB configurations such as, Endpoints, Services, and Processes<br />

are placed under the Domain1 node of Project Explorer. This helps you to view the<br />

complete projects and DS configurations as shown below:<br />

Drag-and-drop support for ESB Address nodes<br />

This feature enables you to drag the ESB address onto editors at relevant target locations,<br />

such as ESB process editor, Message sender view, Message listener view and so on. This<br />

reduces your effort to locate and choose address and thus enhances the usability.<br />

44 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


What’s Also New in <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench<br />

In <strong>Sonic</strong> <strong>8.5</strong> release, it is now possible to drag and drop Directory Service Address nodes<br />

on ESBP Entry, Exit, Fault and RME endpoint node. For example, you can drag and drop<br />

an Entry endpoint from the Project Explorer to the ESBP editor<br />

.<br />

You can also drag and drop an ESB Address on Process flow to create an appropriate step.<br />

The dropped address will get set as the Service/Endpoint/Process for the step. For<br />

example, in the following screen capture, a service is dragged and dropped to an existing<br />

ESB process to create a step.<br />

Quick way to create ESB Process from the Project Explorer<br />

You can create ESB Processes from Project Explorer by clicking the context menu of the<br />

service operations available in domain node and able to run it.<br />

For more information, see Chapter 10 “Getting started with <strong>Sonic</strong> ESB and DataXtend<br />

SI” in the “<strong>Progress</strong> <strong>Sonic</strong> ESB Developer's Guide”.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 45


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

Scrollbar enhancements to Workbench Views<br />

<strong>Sonic</strong> Workbench views have been enhanced to provide scroll bars. This feature allows<br />

the user to see and input to various controls which are inaccessible on lower resolution<br />

displays. For example, the ESB process Overview page contains a lot of information<br />

which can now be visualized in many common resolutions.<br />

Restart & Reload Simplification<br />

After uploading or removing a service, <strong>Sonic</strong> Workbench prompts you to either restart or<br />

reload a container based on the current state of the ESB container. If the container is<br />

already in start mode, the Workbench monitors the services deployed on the ESB<br />

container. <strong>Sonic</strong> Workbench decides and prompts you to restart or reload the container<br />

based on the nature of the deployed services. For example, the container will be restarted<br />

if a <strong>Sonic</strong> Connect service or a BPEL service is uploaded or already deployed on it. If the<br />

container is shutdown, <strong>Sonic</strong> Workbench prompts you to start it.<br />

This information has been added to the <strong>Sonic</strong> Workbench online help in the Workbench<br />

and in its PDF version, <strong>Sonic</strong> ESB Development Tools guide.<br />

Lazy-Load Palette Categories<br />

Prior to <strong>Sonic</strong> Workbench <strong>8.5</strong>, the <strong>Sonic</strong> Workbench took a long time to load items in the<br />

palette because they are fetched from the Directory Service. However, many items remain<br />

unused and can be loaded in the background, or when their palette category is expanded.<br />

Report a Technical Issue<br />

Report a Technical Issue is an Eclipse based plug-in to report bugs or enhancements in the<br />

product by customers. This feature allows you to attach container logs to the bug report<br />

and share the issue with the technical support team at <strong>Progress</strong> for resolution. The bug<br />

report information is shared as an XML file which is useful in passing the required<br />

46 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


What’s Also New in <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench<br />

information programmatically and resolving the issue. With this feature, you can also<br />

attach files such as error screen captures or network usage.<br />

You can report a technical issue through the Console view displaying container logs, by<br />

right-clicking the relevant entry in the Error Log and selecting Report Technical Issue,<br />

through the Project Explorer view, and by selecting Help > Report Technical Issue.<br />

This information has been added to the <strong>Sonic</strong> Workbench online help under the <strong>Progress</strong><br />

Technical Issue Reporting Guide section.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 47


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

WS-I compliant WSDLs for <strong>Sonic</strong> Connect<br />

<strong>Sonic</strong> Workbench <strong>8.5</strong> introduces improved Web Service wizards which allow the users to<br />

generate WS-I compliant WSDLs while exposing ESB Processes as Web Services.<br />

A new group, Binding Options, is added which allows the user to select the binding style<br />

to be used while generating a WSDL file. The options are: Document literal, Document<br />

literal with Wrapped style, and RPC literal.<br />

This information has been added to the <strong>Sonic</strong> Workbench online help in the Workbench<br />

and in its PDF version, <strong>Sonic</strong> ESB Development Tools guide.<br />

48 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


SMC Performance in Large Domains<br />

What’s Also New in <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench<br />

The throughput time of SMC is improved when searching for data from the Directory<br />

Service in large domain. All the request and response actions are compressed thereby<br />

saving time to load the artifacts from DS.<br />

Select the Enable Compression checkbox to compress all the request and response<br />

actions thereby saving time to load the artifacts from DS.<br />

ESB support for global RME destination<br />

If the RME destination cannot be determined, the errors are sent to a global RME<br />

destination.<br />

Latest DataDirect Drivers<br />

<strong>Sonic</strong> Workbench <strong>8.5</strong> ships with the latest DataDirect drivers.<br />

New ESB Service Metrics and Notifications<br />

<strong>Sonic</strong> ESB extends its metrics and notifications beyond esb.service.messages.* metrics,<br />

application.service.* notifications, and system.state.* notifications. The following<br />

ESB metrics and notifications are introduced in <strong>Sonic</strong> <strong>8.5</strong>.<br />

esb.connect.requests Metrics<br />

As these are metrics specific to <strong>Sonic</strong> Connect services, they are settable on the SMC’s<br />

Configure tab, but will be available on the Runtime tab only if the ESB Container contains<br />

a <strong>Sonic</strong> Connect service.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 49


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

The esb.connect.requests.* metrics include:<br />

● Average Processing Time<br />

● Faulted<br />

● Received<br />

● ReceivedPerHour<br />

● ReceivedPerMinute<br />

● ReceivedPerSecond<br />

FileDrop and FilePickup Metrics<br />

As these are metrics specific to <strong>Sonic</strong> File services, they are settable on the SMC’s<br />

Configure tab, but will be available on the Runtime tab only if the ESB Container contains<br />

<strong>Sonic</strong> File services<br />

● The FileDrop.* metrics include FailedFileDropCount and FileDropCount<br />

● The FileDrop.* metrics include FailedFilePickupCount and FilePickupCount<br />

application.alert.esb.service.messages.* Alert Notifications<br />

An ESB Container can be set to report alert notifications by ESB Container, management<br />

container, or domain for threshold crossings on:<br />

● AverageProcessingTime<br />

● ReceivedPerHour<br />

● ReceivedPerMinute<br />

● ReceivedPerSecond<br />

For more information, see the “ESB Containers” chapter of the <strong>Progress</strong> <strong>Sonic</strong> ESB<br />

Configuration and Management Guide.<br />

What’s New in <strong>Sonic</strong>MQ and Management Framework<br />

The following features are introduced in <strong>Sonic</strong>MQ in <strong>8.5</strong>:<br />

● “Routing Connection (DRA) Flow Control Notifications” on page 51<br />

● “Alert Notification Repeats When Still Over a Threshold” on page 54<br />

● “Browse-only ACL” on page 54<br />

● “Improved CAA Failure Detection” on page 55<br />

● “Minimize Subscriber Traffic” on page 56<br />

50 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


What’s New in <strong>Sonic</strong>MQ and Management Framework<br />

● “Added functionality in C and C++ Clients” on page 57<br />

● “Container log records CPU/Core Count, and ProcessID” on page 58<br />

● “Advanced Broker Property To Check for Oversized Messages” on page 58<br />

● “Administered Objects Tool Enables Use of Sub-contexts” on page 58<br />

● “Enhanced Documentation: Quality of Protection settings” on page 59<br />

● “Enhanced Documentation: Running <strong>Sonic</strong> as a Linux service” on page 59<br />

● “Cluster-level Flow-to-disk Parameter” on page 60<br />

● “Named Sessions” on page 60<br />

Routing Connection (DRA) Flow Control Notifications<br />

A routing connection provides a way for an application to dynamically route a message<br />

through a connected broker to a destination on another broker. As the brokers involved in<br />

a DRA routing connection could be in different management domains, the point of view<br />

of an administrator in one of those domains will be constrained.<br />

Flow control notifications for dynamic routing are similar in concept to cluster flow<br />

control notifications. The outgoing side of the routing connection is monitored once per<br />

configured interval to check whether it is flow controlled. A connection is flow-controlled<br />

if it has messages to send, but is unable to send them because it has received a directive<br />

from its peer to limit sending. It can only send messages higher than a certain priority<br />

(Pub/Sub flow control) or messages that are not for blocked destinations (PTP flow<br />

control). If the connection has been flow-controlled for a whole monitor interval, a flow<br />

control ‘pause’ notification will be sent. Notifications will be sent once per monitor<br />

interval as long as the connection remains flow controlled.<br />

A resume notification is sent when the connection receives a directive to resume sending.<br />

While the ‘pause’ notification combines pubsub and ptp data into a single notification,<br />

resume notifications are sent when the individual resume event occurs.<br />

To provide the data for a notification, the sending connection identifies that it is flow<br />

controlled and the receiving broker supplies the details about blocking resources. The<br />

receiving broker sends the notification. When brokers are in the same management<br />

domain, the notifications are visible to administrators of both brokers.<br />

However, for routing connections, sending broker and the receiving broker are often in<br />

different management domains. A notification produced by the receiving broker’s domain<br />

may not be visible in the sending broker’s domain. Furthermore, data from the receiving<br />

broker about blocking resources (subscribers) is not meaningful in the sending broker’s<br />

domain, and exposing the information would present a security violation. Even without<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 51


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

all the data about the source of flow control, a sender-side notification can be useful in<br />

alerting an administrator to problems with the routing connection.<br />

For this reason, DRA flow control notifications are produced on both the sending and the<br />

receiving brokers. Notifications generated on a sender side will have a different<br />

notification name than notifications generated on the receiver size. Users can select which<br />

notifications to subscribe to depending on their environment. The sender side<br />

notifications will not contain details of blocking subscribers, but will indicate the<br />

blocking type (pubsub or ptp) and blocking priority.<br />

Pause Notifications on Routing Connections<br />

Pause notification indicates that a DRA routing connection is unable to send messages.<br />

To produce the pause notifications, the sending side of each DRA connection is checked<br />

once per monitor interval to determine whether it is flow-controlled. If the connection has<br />

been flow controlled for a full interval, the routing connection.<br />

Pause notifications are produced once per monitor interval for as long as the connection<br />

remains flow-controlled.<br />

Resume Notifications on RoutingConnections<br />

Resume notifications are sent when sending on the DRA connection has resumed.<br />

Sending can resume when a queue destination is no longer blocked, or the minimum<br />

priority of messages that can be sent has been adjusted downwards. There can be multiple<br />

resume notifications following a pause notification.<br />

A ResumeType of "PUBSUB" indicates that sending has resumed for pubsub. This means that<br />

all the subscribers listed in the previous ClusterConnectionPause notification have<br />

allowed the Connection to resume sending.<br />

A ResumeType of "PTP" indicates that sending has resumed for the named destination.<br />

There is one resume notification per resumed destination.<br />

For the complete information, see the “Managing <strong>Sonic</strong>MQ Brokers” chapters of the<br />

<strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and Management Guide.<br />

Sample Application<br />

A sample application was added to <strong>Sonic</strong>MQ Management samples,<br />

BrokerFlowControlNotificationReporter.java. It creates a notification listener that uses<br />

a notification filter to receive only flow control notifications for clustered and routing<br />

connections. To see the notifications, you need a scenario that induces flow control. See<br />

52 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


What’s New in <strong>Sonic</strong>MQ and Management Framework<br />

the sample’s readme file and refer to the <strong>Progress</strong> <strong>Sonic</strong>MQ Administrative Programming<br />

Guide for more about runtime management applications.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 53


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

Alert Notification Repeats When Still Over a Threshold<br />

Alerts enable you to set a series of thresholds that produce a notification when each<br />

threshold is crossed. In prior releases, the notification was sent just at the point when the<br />

threshold was crossed. In <strong>Sonic</strong> <strong>8.5</strong>, you can choose to have alert notifications sent again<br />

at the collection interval if the current value is still over the threshold.<br />

The initial alert describes the date/time at the notification source that the threshold was<br />

initially crossed. If there are multiple thresholds defined for a given metric, the date/time<br />

will be <strong>update</strong>d to reflect the most recent threshold that was crossed; however, if no<br />

additional threshold is crossed, a repeat metric alert notification will contain the same<br />

date/time as previously sent.<br />

Each repeat alert indicates whether the metric alert notification is a repeat of a previously<br />

sent metric alert notification. If there are multiple thresholds defined for a given metric,<br />

the attribute value will reflect whether the alert is the first alert (where value = false) that<br />

is being sent regarding a particular threshold having been crossed.<br />

On the Metrics tab of each component type that supports metrics, the following<br />

information describes its Repeat Alert Notifications option:<br />

When selected, causes an alert notification to be repeated at the refresh interval if the<br />

threshold is still crossed. The default value is cleared (notifications are sent only at<br />

the crossing of a threshold.)<br />

This material was added to the <strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and Management Guide.<br />

Browse-only ACL<br />

A new action was added to Authorization Policy Access Control List definitions, enabling<br />

a user or group to be granted permission to see messages in a queue, but denied<br />

permission to consume messages from the queue.<br />

Browsing is implicitly allowed for any user granted receive permission. Browse<br />

permission where receive permission is denied, allows messages to be only viewed, an<br />

appropriate control for many clerical and auditor functions.<br />

If you choose to implement Receive access control to the dead message queue (DMQ),<br />

you might want to DENY Receive access to the common group PUBLIC and then:<br />

● GRANT Receive access to groups and users allowed to consume from the DMQ<br />

● GRANT Browse access to groups and users allowed to review yet not consume from the<br />

DMQ<br />

54 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


What’s New in <strong>Sonic</strong>MQ and Management Framework<br />

See the chapter “Security Considerations in System Design” in the <strong>Progress</strong> <strong>Sonic</strong>MQ<br />

Deployment Guide, and the chapter “Configuring Security” in the <strong>Progress</strong> <strong>Sonic</strong>MQ<br />

Configuration and Management Guide for more information.<br />

Improved CAA Failure Detection<br />

Connections to <strong>Sonic</strong> brokers can fail for a number of reasons (processes die, machines<br />

fail, network hardware fails, wires get cut, etc.). Many failures do not result in immediate<br />

TCP layer identification and reporting of the failure, and thus a <strong>Sonic</strong> broker could be<br />

unaware of failure through a delay that goes beyond intended service levels.<br />

New connection failure settings provide:<br />

● A consistent connect & connection failure detection mechanism across cluster and<br />

replication broker-to-broker connections<br />

● A consistent set of configurability and configuration settings for the connection<br />

failure detection across such connections<br />

● A common look & feel to the UI used to configure the settings<br />

This new connection failure detection mechanism may be used:<br />

● As a supplement to OS TCP connection-failure detection mechanisms<br />

● Effectively as a replacement for OS TCP connection-failure detection mechanisms<br />

(which may be desirable since changes to OS TCP settings will affect all applications<br />

running on the same host)<br />

● As a means to achieve reduced connection failure detection times for platforms that<br />

do not support configuration of TCP settings for early connection-failure detection<br />

For complete information, see the “Tuning TCP to Optimize CAA Failover” chapter of<br />

the <strong>Progress</strong> <strong>Sonic</strong>MQ Performance Tuning Guide.<br />

Enhanced Documentation: Tutorial on Using SSL<br />

Using SSL requires setting up appropriate PKCS12 and JKS keystore resources on clients<br />

and brokers, and establishing appropriate credentials and certificates. Two step-by-step<br />

tasks detail setting up SSL to use client authentication and setting up not using client<br />

authentication. The client aspects are described for both the standard Java client, and<br />

.NET guide.<br />

See the chapter “Tutorial on Using SSL in <strong>Sonic</strong>” in the <strong>Progress</strong> <strong>Sonic</strong>MQ Deployment<br />

Guide.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 55


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

Minimize Subscriber Traffic<br />

The feature lets an application effectively shut down or reduce the subscriber’s client<br />

buffer to minimize the background priming (at the cost of increased latency).<br />

When set to true, the subscriber will attempt to flow control the broker as soon as<br />

messages are delivered into the client’s buffer. The subscriber could receive more<br />

messages put on the wire by the broker before it receives the flow control message.<br />

Sending resumes when the subscriber's buffer becomes empty.<br />

The setting to minimize subscriber traffic is implemented on the Java, C, and C++ clients,<br />

as follows.<br />

Java Client<br />

The setMinimizeSubscriberTraffic method in<br />

progress.message.jclient.ConnectionFactory provides control over TopicSubscribers<br />

and DurableSubscribers. The following syntax sets the option to minimize subscriber<br />

traffic:<br />

ConnectionFactory.setMinimizeSubscriberTraffic(boolean value)<br />

where:<br />

■ value is true when you want to minimize subscriber traffic<br />

A related method is public java.lang.boolean getMinimizeSubscriberTraffic().<br />

It returns the value that indicates whether subscriber traffic is being minimized.<br />

See the chapter “<strong>Sonic</strong>MQ Connections” in the <strong>Progress</strong> <strong>Sonic</strong>MQ Application<br />

Programming Guide for more information. This option can be set on Connection<br />

Factories that are defined as Administered Objects. See the <strong>Progress</strong> <strong>Sonic</strong>MQ<br />

Configuration and Management Guide for more information.<br />

C Client<br />

In C client,<br />

int TopicConnectionFactory_setMinimizeSubscriberTraffic<br />

(HOBJ thisObj, jboolean minimizeTraffic);<br />

See the <strong>Progress</strong> <strong>Sonic</strong>MQ C Client Guide for more information.<br />

C++ Client<br />

In progress::message::jclient::TopicConnectionFactory:<br />

void setMinimizeSubscriberTraffic(jboolean minimizeTraffic);<br />

See the <strong>Progress</strong> <strong>Sonic</strong>MQ C++ Client Guide for more information.<br />

56 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Added functionality in C and C++ Clients<br />

What’s New in <strong>Sonic</strong>MQ and Management Framework<br />

In addition to the ability to minimize subscriber traffic, the C and C++ clients now provide<br />

the following functionality enhancements:<br />

Login SPI<br />

The <strong>Sonic</strong>MQ C client and C++ Service Provider Interfaces (SPI) are used on the client<br />

side to authenticate JMS client applications where the broker is using <strong>Sonic</strong>’s external<br />

security implementation, Pluggable Authentication and Security Service (PASS).<br />

Implementation of this interface requires implementing the Authentication SPI and the<br />

Management SPI on the broker side.<br />

The Authentication SPI is used to authenticate JMS clients connecting to a broker via the<br />

delegation mode, and to perform callback operations on the broker. The Management SPI<br />

is used by the <strong>Sonic</strong> Directory Service to replicate users and credentials into the <strong>Sonic</strong><br />

Directory Service. This information is used in the <strong>Sonic</strong> Management Console to provide<br />

a graphical read-only representation of users and groups in the external domain.<br />

See the chapter “Using Login SPI for <strong>Sonic</strong> Authentication” in <strong>Progress</strong> <strong>Sonic</strong>MQ C<br />

Client Guide and <strong>Progress</strong> <strong>Sonic</strong>MQ C++ Client Guide for more information.<br />

SSL Support<br />

<strong>Sonic</strong>MQ supports encryption at the connection level through SSL. This material<br />

describes the programming concepts and actions required to establish and maintain<br />

connections to <strong>Sonic</strong>MQ brokers through SSL in the <strong>Sonic</strong>MQ C and C++ clients.<br />

<strong>Sonic</strong>MQ C and C++ clients use the OpenSSL library included in the client package. You<br />

set runtime properties to identify the certificates, and the cipher suites preferred for the<br />

encryption of the communication channel. The default cipher suite is RC4-SHA:RC4-MD5.<br />

These properties can be established in any one of the following ways:<br />

● Command line — Pass the SSL properties at the command line when starting the<br />

application.<br />

● Programmatically — Set the SSL properties in your application.<br />

For optimal security, consider using LoginSPI in conjunction with SSL so that the<br />

obfuscated credentials are encrypted at the connection level.<br />

See the chapter “SSL Connections” in <strong>Progress</strong> <strong>Sonic</strong>MQ C Client Guide and <strong>Progress</strong><br />

<strong>Sonic</strong>MQ C++ Client Guide for more information.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 57


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

Container log records CPU/Core Count, and ProcessID<br />

Every container log records additional platform information that enumerates the available<br />

processors, and identifies the container’s JVM’s process, as shown:<br />

<strong>Sonic</strong> Management<br />

Release <strong>8.5</strong>.0 Build Number nnn<br />

Copyright (c) 1999-2011 <strong>Progress</strong> Software Corporation.<br />

All rights reserved.<br />

Local host: machineone (Windows XP - 5.1)<br />

Available Processors: 2<br />

Java Process ID: 5512@machineone<br />

Java(TM) SE Runtime Environment (build 1.6.0_11-b03)<br />

Sun Microsystems Inc. (home C:\Program Files\<strong>Progress</strong>\<strong>Sonic</strong>\MQ<strong>8.5</strong>\jre,<br />

version 1.6.0_11)<br />

Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode)<br />

Configured Arguments : -Xms64m -Xmx512m<br />

Configured Properties: <br />

Advanced Broker Property To Check for Oversized Messages<br />

A new advanced broker property enables a broker to return an exception to a JMS<br />

publisher when the publisher's message causes TopicDbSize to be exceeded. Set<br />

BROKER_PUBSUB_PARAMETERS.CHECK_DB_SIZE_ON_PUBLISH to true to enable the feature.<br />

Administered Objects Tool Enables Use of Sub-contexts<br />

The initial context in a JNDI store can result in a large flat file structure. You can add subcontexts<br />

to distinguish categories and subcategories of administered objects.<br />

The <strong>Sonic</strong> Deployment Manager provides a way to import and delete JNDI entries and<br />

sub-contexts that are easy to maintain and extend. See the SDM sample model JNDI for<br />

details.<br />

◆ To add a sub-context to the internal JNDI store:<br />

1. Create a connection to an internal object store.<br />

2. Right click on the connection you want to extend with sub-contexts, and then choose<br />

Create Sub-Context.<br />

3. In the Create Sub-Context dialog box, enter the name you want to use.<br />

58 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


What’s New in <strong>Sonic</strong>MQ and Management Framework<br />

4. Right-click on a sub-context name to create subordinate levels.<br />

5. Click on a store name or subcontext name, and then enter destinations and connection<br />

factories that can be referenced by their sub-context. The following figure shows three<br />

connection factory objects:<br />

These ConnectionFactories were created by the <strong>Sonic</strong> Deployment Manager’s<br />

JNDI/Import sample, and are located in the JNDI store at a subcontext of jms.sonic.<br />

Enhanced Documentation: Quality of Protection settings<br />

The documentation for Quality of Protection (QoP) equated its evaluation to Access<br />

Control Lists. While the inheritance model and the use of template characters in QoP<br />

settings is similar to ACLs, the value of the QoP setting determines whether the setting<br />

can be changed at a lower level of the hierarchy or overridden by an application. When<br />

integrity is set at a hierarchical level, only settings to privacy or application overrides<br />

(to privacy) below that level are honored, and you cannot change any lower level to none.<br />

See the revised documentation in the “Quality of Protection” section of the chapter<br />

“Security Considerations in System Design” in <strong>Progress</strong> <strong>Sonic</strong>MQ Deployment Guide.<br />

Enhanced Documentation: Running <strong>Sonic</strong> as a Linux service<br />

While <strong>Sonic</strong> provides no helpers for creating a service in Linux, a Linux developer<br />

provided a pattern that he uses to start and stop <strong>Sonic</strong> containers on a Linux machine.<br />

See the note at the end of the chapter “Setting Up Containers” in the <strong>Progress</strong> <strong>Sonic</strong><br />

Installation and Upgrade Guide for a complete listing of this script.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 59


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

Cluster-level Flow-to-disk Parameter<br />

A cluster parameter to configure the flow-to-disk setting has been added. The setting will<br />

apply to all brokers in a cluster. The default value is false. The parameter works in the<br />

same way as other cluster-level parameters such as RoutingNodeName and<br />

FlowControlMonitorInterval: when a broker is a member of the cluster, the cluster-level<br />

parameter applies and the broker-level setting is ignored.<br />

See<br />

Note Impact when upgrading — When an <strong>Sonic</strong> installation is upgraded, the Domain<br />

Manager upgrade will set the cluster-level flow-to-disk parameter to true if any<br />

broker in the cluster has flow-to-disk enabled<br />

For more information, see the “Configuring <strong>Sonic</strong>MQ Brokers” chapter of <strong>Progress</strong><br />

<strong>Sonic</strong>MQ Configuration and Management Guide, and the “Flow to Disk Publishing”<br />

chapter in the <strong>Progress</strong> <strong>Sonic</strong>MQ Performance Tuning Guide.<br />

Named Sessions<br />

Additional createSession() methods allow you to add a session name that will be<br />

exposed in session information, as in the Manage > Broker > Connections panel in the<br />

<strong>Sonic</strong> Management Console.<br />

The signature of this createSession() method is as follows:<br />

progress.message.jclient.Connection.createSession<br />

(boolean transacted, int acknowledgeMode, String sessionName)<br />

where sessionName is a String that is a set of characters, a null, or an empty String, in<br />

which case, the behavior is the same as the standard API without sessionName.<br />

Get session’s name with String progress.message.jclient.Session.getSessionName()<br />

Corresponding TopicSession, QueueSession, and XA methods that enable named sessions<br />

are defined in the API.<br />

This information was added to the <strong>Progress</strong> <strong>Sonic</strong>MQ Application Programming Guide.<br />

60 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Viewing Session Names<br />

What’s New in <strong>Sonic</strong>MQ and Management Framework<br />

When a JMS client has provided a name for a session, the session name becomes part of<br />

the application identifier. Then, connections can display the name of each session to make<br />

it easier to navigate to the associated consumers, as shown:<br />

See the “Managing <strong>Sonic</strong>MQ Broker Activities” chapter of the <strong>Progress</strong> <strong>Sonic</strong>MQ<br />

Configuration and Management Guide for more information about viewing connection<br />

and session details.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 61


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

What’s New in <strong>Sonic</strong> Deployment Manager<br />

The <strong>Sonic</strong> Deployment Manager added one SDM-specific feature as well as elements that<br />

enable the configuration of features in the <strong>Sonic</strong> <strong>8.5</strong> release:<br />

Element to Specify Shutdown After Run<br />

In the Model.xml file, the following element was added to specify that when a run<br />

completes, the Domain Manager container shuts down:<br />

● DSHost<br />

■ ShutdownAfterRun<br />

Elements for Setting Failover Properties<br />

In the Tuning schema, the following elements adjust failover properties:<br />

● ClusterParameters<br />

■ ConnectTimeout<br />

■ PingInterval<br />

■ PingTimeout<br />

● Replication<br />

■ ConnectTimeout<br />

■ PingInterval<br />

■ PingTimeout<br />

Element for Browse ACLs<br />

In the Model schema, the following element was added:<br />

● ACL : AclType<br />

■ BROWSE_ACL<br />

Element for Notification Alert Repeats<br />

In the Tuning schema, the following element was added:<br />

● Metrics<br />

■ RepeatAlertNotifications<br />

62 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Elements for Actional SDK Archive and Plugmaker<br />

In the Tuning schema, the following elements were added:<br />

● ContainerResources<br />

■ ActionalSDKArchiveName<br />

■ ActionalPlugmakerArchiveName<br />

Element for Cluster/DRA Flow Control Notifications<br />

In the Tuning schema, the following element was added:<br />

● ClusterParameters<br />

■ FlowControlMonitorInterval<br />

● RoutingParameters<br />

■ FlowControlMonitorInterval<br />

Elements for Cluster Flow to Disk<br />

In the Tuning schema, the following element was added:<br />

● ClusterParameters<br />

■ FlowToDisk<br />

What’s New in <strong>Sonic</strong> Deployment Manager<br />

Note Migrate SDM Models to <strong>8.5</strong> — It is a good practice to run migrateModel against any<br />

existing models you want to use in a <strong>Sonic</strong> <strong>8.5</strong> deployment as the model will be<br />

<strong>update</strong>d so that its elements correspond to the <strong>8.5</strong> SDM schema.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 63


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

What’s Changed in <strong>Sonic</strong> <strong>8.5</strong><br />

Some changes in <strong>Sonic</strong> <strong>8.5</strong> have an impact on existing deployments:<br />

● “Change in Default Windows Services behaviors” on page 64<br />

● “Impact of Multipart Message Capture on Legacy Behaviors” on page 64<br />

● “Cluster Flow To Disk parameter is Assumed by Members” on page 65<br />

● “Integrating with Eclipse Variables View” on page 65<br />

● “XML Tools” on page 66<br />

● “Improved Error Reporting” on page 66<br />

● “<strong>Sonic</strong> <strong>8.5</strong> and RSA” on page 67<br />

Change in Default Windows Services behaviors<br />

Window services now consider an initial attempt to connect to the Domain Manager as a<br />

completed startup, and thus the Windows service does not timeout waiting to connect. The<br />

connection timeout in attempting connect defaults to unlimited. These two changes<br />

provide improved standby behavior in deployed assets, particularly those that are awaiting<br />

a <strong>Sonic</strong> Deployment Manager run to provision the remote machines.<br />

Impact of Multipart Message Capture on Legacy Behaviors<br />

<strong>Sonic</strong> ESB now takes advantage of new Actional 8.2.3 SDK features to report multi-part<br />

payloads. When the ESB container option Enable Payload Capture is selected, and<br />

Actional policy is configured to require payload to be reported for an interaction, all ESB<br />

message parts are reported to Actional.<br />

This differs from the previous behavior of reporting only the first part of the ESB message<br />

where the part content-type was “application/xml”, “text/xml”, or listed in an advanced<br />

configuration property(payloadCaptureMimeTypes).<br />

<strong>Sonic</strong> ESB takes advantage of new Actional 8.2.3 SDK capabilities that allows<br />

determination of whether payload is required by the Actional Management Server (AMS)<br />

for either policy evaluation or for auditing purposes. ESB only incurs payload preparation<br />

and transmission overhead if absolutely required by AMS.<br />

<strong>Sonic</strong> ESB now reports payload size to AMS for ALL interactions independent of the<br />

Enable Payload Capture setting. To be consistent with other Actional interceptors,<br />

payload size is now reported as a representation of the bandwidth used for the<br />

64 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


What’s Changed in <strong>Sonic</strong> <strong>8.5</strong><br />

communication. For intra-container or in-memory interactions a zero length payload size<br />

is reported. For interactions across JMS, JMS network bandwidth size is reported.<br />

This new payload size reporting strategy differs from the old behavior. Previously,<br />

payload size was reported only if Enable Payload Capture was set, and if reflected payload<br />

bytes reported to Actional (which was no more than the size of a single part).<br />

Should you need to revert to the previous payload and size reporting behaviors, an<br />

advanced configuration property can be set: LegacyPayloadReportingModeEnabled.<br />

There are two ways to apply this setting:<br />

1. On a specific container, set a Java System Property on the Resources tab of the<br />

management container, then add the name<br />

actional.interceptor.LegacyPayloadReportingModeEnabled and the value true, and<br />

then move the setting up to highest precedence.<br />

2. Domain-wide for all containers as a XQGlobalConfig property, connect to the domain<br />

with the esbAdmin tool, and then enter:<br />

set LegacyPayloadReportingModeEnabled true<br />

Cluster Flow To Disk parameter is Assumed by Members<br />

The setting for Flow To Disk is now provided as a cluster setting. The cluster setting<br />

overrides that setting on any member of the cluster.<br />

In <strong>Sonic</strong> Deployment Manager, the Flow To Disk setting is now in a cluster parameter set<br />

in the Tuning.xml. As you might be have other clusters that previously did not intend to<br />

use Flow To Disk, the parameter set by an upgrade of another cluster where at least one<br />

member had Flow To Disk set will force that seting on those clusters too.<br />

Integrating with Eclipse Variables View<br />

The Variables view shows the variables and messages at the current selection in the Debug<br />

view, unlike the Output view, which only shows the variables and messages at the end of<br />

running or debugging a scenario. <strong>Sonic</strong> Workbench contributes to the standard Eclipse<br />

Variables view.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 65


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

XML Tools<br />

<strong>Sonic</strong> <strong>8.5</strong> release introduces the following modifications in the XML Tools:<br />

● <strong>Sonic</strong> XSD and WSDL editor are deprecated in <strong>8.5</strong> and WTP WSDL and XSD editor<br />

are made as primary editor, because of following reasons:<br />

■ WTP XSD editor has more features as compared to <strong>Sonic</strong> XSD.<br />

■ To get SOAP 1.2 MTOM support from WTP WSDL Editor for <strong>Sonic</strong> Connect.<br />

● <strong>Sonic</strong> Workbench contributed to WTP editors to provide ESB Binding support for<br />

WTP WSDL editor.<br />

● The <strong>Sonic</strong> Design Perspective allows selecting File> New> WSDL, but the WTP<br />

WSDL editor is used.<br />

■ This will be effective in the following scenarios:<br />

❑ While opening file created using WTP wizard<br />

❑ While opening file created from imported project<br />

❑ While opening file created using <strong>Sonic</strong> XML Editor(s) wizard<br />

■ To open file with <strong>Sonic</strong> XML Tools, user must set the preference in the File<br />

Associations preference page by making <strong>Sonic</strong> Content type as Default one.<br />

Improved Error Reporting<br />

<strong>Sonic</strong> <strong>8.5</strong> release provides better user experience while running ESB Processes from<br />

Workbench. The goal is to report the ESB Services that are not deployed yet or that are<br />

not initialized properly which are part of ESB Process definition.<br />

Prior to <strong>Sonic</strong> <strong>8.5</strong> release, there was no mechanism to verify whether a service was<br />

deployed and properly running.<br />

In <strong>Sonic</strong> <strong>8.5</strong> release, <strong>Sonic</strong> Workbench collects all the ESB Services used in the ESB<br />

Process when an ESB process is run and checks if they are deployed in any of the<br />

managed containers. It also checks whether the service is started.<br />

66 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong> <strong>8.5</strong> and RSA<br />

What’s Changed in <strong>Sonic</strong> <strong>8.5</strong><br />

RSA libraries are not shipped with <strong>Sonic</strong> 8.0 or <strong>Sonic</strong> <strong>8.5</strong>. This will not cause any impact<br />

for most users as SSL functionality is provided via Java Secure Socket Extension (JSSE).<br />

Only Certificate Revocation List (CRL) support requires RSA libraries. Customers who<br />

want to use this feature with <strong>Sonic</strong> <strong>8.5</strong> must purchase RSA libraries directly from RSA.<br />

The SSL configuration dialog contains a button Certificate Chain & CA Directory. SSL<br />

acceptors can be configured using PKCS7 or PKCS8 on the Edit Certificate Chain & CA<br />

Directory Properties dialog box. If they are configured instead of a JSSE keystore (as in<br />

the case of upgrade), PKCS7 or PKCS8 is used to populate a JKS keystore at runtime.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 67


Chapter 2: What’s new and changed in <strong>Sonic</strong> <strong>8.5</strong><br />

68 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Chapter 3 What was new and changed in prior<br />

Version 8 releases<br />

This chapter describes functionality in the <strong>Progress</strong> <strong>Sonic</strong> products in release 8.0 and 8.0<br />

SP 1 in the following sections:<br />

● “<strong>Sonic</strong> Installer and Launcher features in 8.0.x” on page 70<br />

● “<strong>Sonic</strong>MQ and Management Framework features in 8.0.x” on page 79<br />

● “<strong>Sonic</strong> ESB and Workbench features in 8.0.x” on page 100<br />

● “<strong>Sonic</strong> Deployment Manager features in 8.0.x” on page 121<br />

This chapter describes <strong>Sonic</strong> functionality in Version 8 deployments.<br />

If you are advancing from Version 7, and your installations are not at the last Version 7<br />

release, 7.6 SP 2, review “What was new and changed in 7.5 and 7.6 releases” on page 129<br />

to see the changes in that were implemented in newer Version 7 releases.<br />

The required upgrade procedures for <strong>Sonic</strong> installations to advance from Version 7<br />

directly to <strong>Sonic</strong> <strong>8.5</strong> are detailed in “Upgrading from Version 7 to <strong>Sonic</strong> <strong>8.5</strong>” on page 95.<br />

Return to this chapter to review the functionality introduced in 8.0. Then, “What’s new<br />

and changed in <strong>Sonic</strong> <strong>8.5</strong>” on page 19 describes the latest functionality changes.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 69


Chapter 3: What was new and changed in prior Version 8 releases<br />

<strong>Sonic</strong> Installer and Launcher features in 8.0.x<br />

The following sections describe the <strong>Sonic</strong> Installer and the <strong>Sonic</strong> Container Launcher:<br />

● “New Installer Features” on page 70<br />

● “How Centralized Installation Works” on page 73<br />

New Installer Features<br />

<strong>Progress</strong> <strong>Sonic</strong> 8.0 introduced centralized installation, a new paradigm in installation,<br />

deployment, and launching of managed containers—changing from prior versions in<br />

fundamental ways. The features are summarized in the following topics:<br />

● “Overview of Centralized Installation” on page 70<br />

● “Introducing the Host Manager” on page 71<br />

● “Introducing the Container Launcher Installer” on page 72<br />

● “Applying <strong>Update</strong>s and Patches” on page 78<br />

Note See a demonstration of centralized installation and provisioning — A set of video<br />

presentations, How SDM Models Configure Remote Machines for Provisioning, details<br />

how an installed Domain Manager and three remote Launcher installations are<br />

provisioned through the <strong>Sonic</strong> Deployment Manager’s HotHotMessagingCluster model to<br />

establish replicated brokers on two of the machines.<br />

Overview of Centralized Installation<br />

<strong>Sonic</strong> now offers centralized installation and associated features that greatly simplify the<br />

configuration and management of distributed deployments.<br />

Centralized installation replaces a set of administrative tasks scattered across the<br />

domain’s topology with a simple install on each distributed system, and configuration<br />

functions that enable remote administrators to provision distributed systems with their<br />

required resources. Consider how key installation and setup functions have changed:<br />

Function Before centralized installation With centralized installation<br />

Domain Manager<br />

Setup<br />

Administration<br />

Tools Setup<br />

Required a sequence of installations<br />

on the Domain Manager system.<br />

Required a sequence of installations<br />

on each administrator’s system.<br />

All licensed products are installed in one<br />

process.<br />

All products are installed in one process with<br />

no license keys needed.<br />

Client Setup Required a license key. No license key needed.<br />

70 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong> Installer and Launcher features in 8.0.x<br />

Function Before centralized installation With centralized installation<br />

Distributed<br />

Components<br />

Required a sequence of appropriate<br />

installations and license keys on each<br />

system.<br />

Activation Daemons Required a manual configuration task<br />

on remote system.<br />

Windows Services Required a manual configuration task<br />

on remote system.<br />

Initial Container<br />

Startup<br />

Data Isolation and<br />

Backup<br />

<strong>Sonic</strong> Deployment<br />

Manager<br />

Introducing the Host Manager<br />

Generic minimal installation creates a<br />

container that connects to the domain.<br />

No license key needed.<br />

Optional during initial container creation.<br />

Optional during initial container creation.<br />

Manual commandline action. Optional during initial container creation.<br />

Various folders within an installation. Each container maintains all its data in its<br />

own folder. Backing up the Containers<br />

folder backs up all user data.<br />

Ran on each distributed system from<br />

the model to install appropriate<br />

product features and configurations.<br />

Runs on the Domain Manager to define the<br />

configurations on logical hosts. The Domain<br />

Manager handles the provisioning of the<br />

distributed systems for the specified product<br />

features.<br />

Version 8 introduces the Host Manager configuration object, a framework component that<br />

is hosted in a container on a machine to provide a conduit for remote setup and launching<br />

of containers. This minimal configuration running on a remote host enables<br />

administrators to directly set up remote containers that will be automatically provisioned<br />

for the components that the container hosts.<br />

The Host Manager is attuned to topology definitions you create in <strong>Sonic</strong> Deployment<br />

Manager models, so that you can run the model in a specified environment to create<br />

configurations that are deployed to specified machines.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 71


Chapter 3: What was new and changed in prior Version 8 releases<br />

Introducing the Container Launcher Installer<br />

Version 8 introduces the Container Launcher Installer to install lightweight resources on<br />

systems that run <strong>Sonic</strong> 8.0 containers. The Container Launcher Installer can setup a<br />

container during its installation. The container can include an Activation Daemon and a<br />

Host Manager as components, and can setup a Windows Service, encrypt the container<br />

initialization file, and then start the configured container to connect to the domain’s<br />

Directory Service to insert the configuration.<br />

How to Script Launcher Installations on Distributed Machines<br />

The following techniques described in Chapter 1 of the <strong>Progress</strong> <strong>Sonic</strong> Installation and<br />

Upgrade Guide show you how to define a response file with connection information so<br />

that you can run a script to pick up the local machine’s hostname and use it as the<br />

container name to configure in the domain’s Directory Service.<br />

With minimal technical expertise required to enable a machine and its role in a domain’s<br />

deployment topology, the container launcher removes the complexity of setting up<br />

distributed computing environment.<br />

The script gets the hostname, puts in a variable, and then uses the hostname in the key<br />

variables that an installation to customize:<br />

● The container name<br />

● The container path (and folder hierarchy)<br />

● The Windows Service name<br />

The adjusted variables are passed into the silent installation as overrides to the values in<br />

the properties file.<br />

Container Launcher Installer Can Encrypt Container Boot File<br />

The 8.0.1 the Container Launcher Installer added a field to the Container Configuration<br />

Properties panel, INI Encryption Password so that the installer will encrypt the<br />

container.ini file that it creates in the container’s installation location.<br />

72 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


How Centralized Installation Works<br />

<strong>Sonic</strong> Installer and Launcher features in 8.0.x<br />

Consider a domain that involves several machines. First you install the Domain Manager<br />

on a machine. Then you install the Container Launcher on several other systems,<br />

specifying that a container is created that defines connection to the Domain Manager,<br />

includes a Host Manager object, and then starts the container.<br />

The following illustration depicts two launcher installations that each setup a container<br />

(ct) with a Host Manager (Hm) and set up a unique name by adding the machine name:<br />

Domain<br />

Domain<br />

Manager<br />

Mgmt<br />

Broker<br />

Directory<br />

Service<br />

DomainManager<br />

Host Manager<br />

HOST<br />

MANAGER<br />

Container<br />

ctHmmachineone<br />

Host Manager<br />

HOST<br />

MANAGER<br />

Container<br />

ctHmmachinetwo<br />

machinezero machineone machinetwo<br />

When an administrator defines the containers for replicating brokers, the configurations<br />

can be pushed through a machine’s Host Manager to set up the container (as illustrated)<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 73


Chapter 3: What was new and changed in prior Version 8 releases<br />

Administration Client<br />

Tools Application<br />

and start the brokers. The new brokers will automatically initialize their store and start<br />

replication—without any additional actions at the remote systems.<br />

Domain<br />

Domain<br />

Manager<br />

Mgmt<br />

Broker<br />

Directory<br />

Service<br />

DomainManager<br />

Container<br />

ct1<br />

Container<br />

ct2<br />

Host Manager<br />

HOST<br />

MANAGER<br />

Container<br />

ctHmmachinetwo<br />

To emphasize how easy that was, consider the case where additional machines are running<br />

containers with a Host Manager, awaiting provisioning. When a catastrophic failure<br />

occurs, the ‘lost’ broker can reconfigure its replication connection to new machine, and<br />

then—by simply setting up and then launching the ‘lost’ broker’s container through the<br />

74 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong><br />

Broker<br />

br1<br />

Host Manager<br />

HOST<br />

MANAGER<br />

Container<br />

ctHmmachineone<br />

Broker<br />

Backup<br />

br1<br />

machinezero machineone machinetwo


Administration Client<br />

Tools Application<br />

<strong>Sonic</strong> Installer and Launcher features in 8.0.x<br />

recovery machine’s Host Manager—recovers the broker and synchronizes with the peer<br />

that has been standing alone.<br />

Domain<br />

Domain<br />

Manager<br />

Mgmt<br />

Broker<br />

Directory<br />

Service<br />

DomainManager<br />

Broker<br />

br1<br />

Container<br />

ct1<br />

Host Manager<br />

HOST<br />

MANAGER<br />

Container<br />

ctHmmachineone<br />

Broker<br />

Backup<br />

br1<br />

Container<br />

ct2<br />

Host Manager<br />

HOST<br />

MANAGER<br />

Container<br />

ctHmmachinetwo<br />

machinezero machineone machinetwo<br />

Container<br />

ct1<br />

<strong>Sonic</strong> documentation provides a video demonstration of these steps across multiple hosts<br />

at How SDM Models Configure Remote Machines for Provisioning.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 75<br />

Broker<br />

br1<br />

Host Manager<br />

HOST<br />

MANAGER<br />

Container<br />

ctHmmachinethree<br />

machinethree


Chapter 3: What was new and changed in prior Version 8 releases<br />

Dynamic Upgrades and <strong>Update</strong>s to Version 8 Installs<br />

The <strong>Sonic</strong> Continuous Availability Architecture provides enterprise deployments with<br />

resilient, scalable, and virtually 100% production reliability. Previously, when clustered<br />

and replicated brokers were scheduled for upgrades, they were required to all stop,<br />

upgrade, and restart. So unscheduled outages could achieve 100% but scheduled<br />

downtime is still downtime, and service-level agreements often were unforgiving.<br />

<strong>Sonic</strong> now allows zero-downtime upgrades of clusters and replicated brokers. Consider<br />

the <strong>Sonic</strong>MQ deployment topology in the following illustration:<br />

Administration<br />

Client 2<br />

Application<br />

Tools<br />

Domain1<br />

DOMAIN MANAGER<br />

BROKER<br />

Messaging<br />

Broker<br />

Mgmt<br />

Broker<br />

The stages of an upgrade from Version 8.0.x to <strong>8.5</strong> are:<br />

D S<br />

A M<br />

CLUSTER OF BROKERS<br />

Node B<br />

Node A<br />

3 CLUSTER OF BROKERS 4<br />

Node C<br />

REPLICATED BROKERS<br />

Node D<br />

1. Domain Manager (Node A) — The management node can be upgraded while all its<br />

brokers and replication functions are running.<br />

2. Administration Tools — The toolsets that administrators use must stop, get promptly<br />

upgraded, and then connect to the upgraded Domain Manager.<br />

3. Standalone Brokers (Node B) — A standalone broker can be running while its<br />

upgrade is selected. Right-click on a broker’s container’s configuration in the <strong>Sonic</strong><br />

Management Console, and then choose Upgrade. The container will upgrade its<br />

76 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong><br />

1<br />

CLUSTER OF REPLICATED BROKERS<br />

P B<br />

ACTIVE<br />

PRIMARY<br />

Messaging<br />

Broker<br />

Node C<br />

P B<br />

P B<br />

STANDBY<br />

BACKUP<br />

Messaging<br />

Broker<br />

6<br />

Node E<br />

5


<strong>Sonic</strong> Installer and Launcher features in 8.0.x<br />

configuration and all its hosted components, provisioning the distributed host with an<br />

upgraded Launcher and libraries so it will restart in the upgraded version.<br />

Clusters and replicated brokers are advanced groupings of brokers that are designed<br />

specifically to ensure continuity and scalability.<br />

4. Cluster of Brokers (Node C) — All the member brokers of a cluster can be running<br />

as each broker is upgraded. The cluster tolerates other cluster members that continue<br />

to run in the prior version, as each one in turn is upgraded. The cluster node never<br />

stops.<br />

5. Replicated Brokers (Node D) — When broker replication is functioning, one peer is<br />

in the ACTIVE mode while the other is in STANDBY mode. The upgrade of the primary<br />

peer completes by restarting its upgraded version, forcing failover to the peer, and<br />

then resumption of replication between the peers. Then, when the upgrade of the other<br />

peer is performed, the upgrade of the node is complete.<br />

Throughout the upgrade process, the node was always available. Fault-tolerant clients<br />

handle transitions between the peers, keeping session and transaction states intact.<br />

6. Cluster of Replicated Brokers (Node E) — Combining the benefits of clusters and<br />

replicated brokers provides the most resilient and scalable node structure. Implicitly,<br />

architects of such topologies want zero-downtime. And they can achieve it.<br />

The Zero-Downtime Upgrade feature takes enterprise resilience to a new level, one where<br />

staying up to date on product releases, and striving for 100% non-stop processing can both<br />

be optimized in service level agreements.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 77


Chapter 3: What was new and changed in prior Version 8 releases<br />

Applying <strong>Update</strong>s and Patches<br />

<strong>Update</strong>s and patches that apply to managed components only require importing the patch<br />

libraries or applying the <strong>update</strong> the Directory Service’s <strong>Sonic</strong> File System, which will<br />

automatically provision deployed distributed components upon container restart. Any<br />

additional upgrade or <strong>update</strong> actions will be performed through the connection to the<br />

Domain Manager. Administration tools and clients must be <strong>update</strong>d or patched directly.<br />

ConfigAdmin utility provides operations to deploy <strong>update</strong>s and patches<br />

The ConfigAdmin utility (located in MQ<strong>8.5</strong>/bin) was enhanced to provide support for<br />

centrally installing and dynamically deploying upgrades and patches.<br />

To help support the centralized installation of upgrades and patches, new operations have<br />

been added for manipulating the Directory Service's <strong>Sonic</strong> File System:<br />

import-files <br />

copy-files <br />

create-folder <br />

delete-files <br />

rename-folder <br />

rename-file <br />

New operations have also been added to help centrally manage and optimize the<br />

incremental deployment of upgrades and patches on a container-by-container basis:<br />

where:<br />

copy-ds-files-to-container-caches <br />

|all-containers [exclude]<br />

modify-archive-search-path <br />

|all-containers [exclude]<br />

● is a text file where each line is one container path<br />

● [exclude] when specified, uses containers in the list as an exclusion list<br />

78 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong>MQ and Management Framework features in 8.0.x<br />

<strong>Sonic</strong>MQ and Management Framework features in 8.0.x<br />

The following features were introduced in <strong>Sonic</strong>MQ in 8.0 SP 1:<br />

● “Message Compression” on page 80<br />

● “Adjusting Time Allowed for Recovery of Shared Subscription Members” on page 82<br />

● “Custom Branding the <strong>Sonic</strong> Management Console” on page 82<br />

● “Skip Initial Connect on Domain Manager Container Startup” on page 84<br />

The following features were introduced in <strong>Sonic</strong>MQ 8.0:<br />

● “New Configuration Object: Host Manager” on page 86<br />

● “<strong>Sonic</strong> Management Console Runtime Information on Broker Connections” on<br />

page 87<br />

● “Enablement of Metrics and Alerts in Configurations” on page 89<br />

● “IPv6 Support” on page 89<br />

● “<strong>Sonic</strong>MQ JMS API Tracing” on page 90<br />

● “Message Grouping” on page 90<br />

● “Metrics on Temporary Queues” on page 92<br />

● “Support of JSR 160 Consoles” on page 93<br />

● “Interbroker Flow Control Notifications” on page 94<br />

● “HTTP Support for Authentication by an External Security Domain” on page 95<br />

● “Enable Actional Log Interceptor” on page 95<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 79


Chapter 3: What was new and changed in prior Version 8 releases<br />

Message Compression<br />

Some throughput problems are caused by large messages and low bandwidth networks.<br />

Applications that produce and consume messages of significant size over these slow<br />

networks might improve overall performance by compressing messages.<br />

The setEnableCompression method in progress.message.jclient.ConnectionFactory<br />

causes messages produced in the scope of the connection factory to be compressed so that:<br />

● MessageProducers compress every message before sending it, and the broker<br />

decompresses every message it receives on these connections.<br />

● MessageConsumers decompress every message when received because the broker<br />

compressed every message it delivered to the consumer on these connections.<br />

When a <strong>Sonic</strong>MQ client application enables message compression, the client negotiates<br />

with the broker to which it is connecting to agree on the compression characteristics and<br />

error checking. The actual compression and decompression functions are implicit when<br />

the option is enabled.<br />

Message compression has time and space requirements on both the client and the broker.<br />

An administrator needs to determine which connections can offset the compression<br />

overheads with the savings in message transfer time, and how many connections that<br />

enable compression can be supported by the broker’s resources.<br />

The following syntax enables message compression on a connection factory:<br />

ConnectionFactory.setEnableCompression(boolean value)<br />

For example:<br />

javax.jms.ConnectionFactory factory;<br />

factory = (new progress.message.jclient.ConnectionFactory (broker));<br />

factory.setEnableCompression(true);<br />

connect = factory.createConnection (username, password);<br />

This information has been added to the “<strong>Sonic</strong>MQ Connections” chapter of the <strong>Progress</strong><br />

<strong>Sonic</strong>MQ Application Programming Guide.<br />

80 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong>MQ and Management Framework features in 8.0.x<br />

Setting Message Compression on Administered Objects<br />

The Administered Objects Tool has been enhanced to enable maintenance of message<br />

compression in the following new section of the Advanced tab for Connection Factories:<br />

where:<br />

Property Description<br />

Enable<br />

Compression<br />

Custom<br />

Compression<br />

Factory<br />

When selected, requires connections that use this connection factory to<br />

perform message compression before sending messages, and requires<br />

the broker to deliver compressed messages to connections that use this<br />

connection factory. The setting could be overridden by the client.<br />

Specifies the custom class that defines message compression and<br />

decompression.<br />

This information has been added to the “Using the JMS Administered Objects Tool”<br />

chapter of the <strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and Management Guide. Message<br />

compression parameters have also been added to ESB Connections and the <strong>Sonic</strong><br />

Deployment Manager schema.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 81


Chapter 3: What was new and changed in prior Version 8 releases<br />

Adjusting Time Allowed for Recovery of Shared Subscription Members<br />

A new advanced broker property can be implemented.<br />

BROKER_PUBSUB_PARAMETERS.SHARED_SUBS_RECOVERY_TIMEOUT — Enables adjustment of the<br />

number of milliseconds that members of a group of shared subscribers will wait for<br />

resolution of indoubt messages to fault-tolerant members that are recovering (from client<br />

failure or broker failover) before reallocating any such messages to other group members.<br />

The default value is 60000—60 seconds. Setting this property to a higher value reduces<br />

the likelihood that a recovering group member receives messages that have already been<br />

reallocated to another member.<br />

The timer starts when the first recovering member reconnects to the group. While the<br />

group has members with indoubt resolution pending, all delivery to the group is deferred,<br />

and all new received messages are saved into the database for the group to be delivered<br />

when doubt is resolved, SHARED_SUBS_RECOVERY_TIMEOUT is reached, or all indoubt faulttolerant<br />

group members pass their reconnect timeout.<br />

The timer starts generating messages about the group’s status to the log after thirty<br />

seconds to note how many fault-tolerant members are being resolved. Subsequent entries<br />

note when resolution completes, or the number of unresolved members after the timeout.<br />

This information has been added to the “Configuring Brokers” chapter of the <strong>Progress</strong><br />

<strong>Sonic</strong>MQ Configuration and Management Guide where the Advanced tab is discussed.<br />

Custom Branding the <strong>Sonic</strong> Management Console<br />

The title and the graphics that identify <strong>Sonic</strong> in the <strong>Sonic</strong> Management Console can be<br />

changed to your preferred title and graphics.<br />

◆ To brand the <strong>Sonic</strong> Management Console:<br />

1. To change the title displayed:<br />

a. Use your preferred text editor to open the file:<br />

sonic_install_dir/MQx.x/bin/branding.properties.<br />

b. Change the value of application.title to your preferred name.<br />

c. Save the edited file.<br />

2. To change the icons and logo displayed:<br />

a. Produce your graphic files as .gif files:<br />

❑ Logo (200 x 117 pixels) named logo.gif<br />

82 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong>MQ and Management Framework features in 8.0.x<br />

❑ Large icon in title bar (36 x 36 pixels) named Application.gif<br />

❑ Small icon in title bar (18 x 18 pixels) named Application18.gif<br />

b. Copy your graphics files.<br />

c. Replace the files of the same name in sonic_install_dir/MQx.x/bin.<br />

Note You can use your preferred name for these graphics files by adding their .gif files<br />

to the <strong>Sonic</strong>MQ /bin directory, and then correspondingly changing their name<br />

references in the branding.properties file. For example:<br />

application.logo=eglogo.gif<br />

application36.icon=egApplication.gif<br />

application18.icon=egApplication18.gif<br />

3. When you start the management console, your changes are applied. For example:<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 83


Chapter 3: What was new and changed in prior Version 8 releases<br />

4. When you choose Help > About in the management console, your logo is displayed.<br />

For example:<br />

This information has been added as the appendix “OEM Considerations” in the <strong>Progress</strong><br />

<strong>Sonic</strong>MQ Configuration and Management Guide.<br />

Skip Initial Connect on Domain Manager Container Startup<br />

At startup of the Domain Manager, you usually see a warning logged, as shown:<br />

[date 13:25:00] (info) "Domain1.DomainManager" starting...<br />

[date 13:25:10] (warning) Management connect failure:<br />

java.net.ConnectException: Connection refused: connect: tcp://myhost:2506<br />

[date 13:25:10] (info) ...connect failed, retrying...<br />

[date 13:25:10] (info) Loaded ID=AGENT<br />

As the management broker has not yet started, this is a benign error but it wastes ten<br />

seconds. A new Java System Property is introduced to skip the initial attempt at<br />

connection that Domain Manager attempts before its broker is ready.<br />

The Java System Property is entered on the Environment tab of a Domain Manager’s<br />

container by clicking New. The property is entered as follows:<br />

84 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong>MQ and Management Framework features in 8.0.x<br />

Note the a -D is implicit—it will be prepended when the property is on the commandline.<br />

With the System Property sonicsw.mf.skipInitialConnect set to true, at container restart<br />

you see:<br />

[date 13:35:00] (info) "Domain1.DomainManager" starting...<br />

[date 13:35:01] (info) Loaded ID=AGENT<br />

This information has been added to the “Configuring Containers and Collections” chapter<br />

of the <strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and Management Guide where the Environment<br />

properties are discussed.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 85


Chapter 3: What was new and changed in prior Version 8 releases<br />

New Configuration Object: Host Manager<br />

A new configuration object, Host Manager, is introduced in <strong>Sonic</strong> 8.0. A Host Manager<br />

is a framework component that implements an interface for remote methods in the<br />

installation location where a management container that has the Host Manager as a<br />

component is running. A Host Manager can:<br />

● Launch containers at its remote location.<br />

● Setup configured containers at its remote location.<br />

A Host Manager can be added as a component of a container configured during a <strong>Sonic</strong><br />

Launcher installation. You can also create a Host Manager in the SMC and add it to<br />

containers.<br />

The <strong>Sonic</strong> Deployment Manager uses Host Manager objects to resolve physical hosts with<br />

a model’s Topology.xml file to locate machines and logical hosts as physical machines on<br />

which it can communicate to perform operations.<br />

You can use a Host Manager interactively in the <strong>Sonic</strong> Management Console to perform<br />

container setup and container launching on the machine where the Host Manager is<br />

running. In the following illustration, the Host Manager in ct1 is being used to setup the<br />

configured container ct2 on ct1’s host:<br />

Management APIs are available that enable you to use a Host Manager for additional<br />

functions.<br />

See the “Managing Containers and Collections” chapter of the <strong>Progress</strong> <strong>Sonic</strong>MQ<br />

Configuration and Management Guide, and the <strong>Sonic</strong> Deployment Manager User’s Guide<br />

for more information.<br />

86 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong>MQ and Management Framework features in 8.0.x<br />

<strong>Sonic</strong> Management Console Runtime Information on Broker<br />

Connections<br />

Broker connections now let you drill down into connections, their sessions, and message<br />

consumers. In the <strong>Sonic</strong> Management Console, choose the Manage tab, and then<br />

Connections on a running broker. Right-click to choose Show System Connections.<br />

The Details tab on the selected connection shows information at the level you select, as<br />

shown:<br />

The broker that is being viewed is a management routing node, acting as a local<br />

management connection for other containers. As such, it has subscriptions to containers<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 87


Chapter 3: What was new and changed in prior Version 8 releases<br />

that route through it to the management node, and the management node connection. The<br />

Subscriptions tab provides information about subscriptions by the selected broker, as<br />

shown:<br />

For more about seeing broker connection information in the <strong>Sonic</strong> Management Console,<br />

see “Managing <strong>Sonic</strong>MQ Broker Activities” in the <strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and<br />

Management Guide.<br />

ConnectionTree Sample Applications<br />

<strong>Sonic</strong>’s Runtime API also provides visibility into connections, sessions, and message<br />

consumers in the ConnectionTree Java proxy and JavaScript samples.<br />

The samples demonstrate extraction of a list of currently active brokers in the domain<br />

using the getActiveBrokers() method, and use of connection-related management API's:<br />

IBrokerProxy.getConnections()<br />

IBrokerProxy.getConnectionTree()<br />

IBrokerProxy.getConnectionMemberDetails()<br />

BrowseConnections Sample Application<br />

The BrowseConnections sample application and its Java source code demonstrate a GUI<br />

that lets a user navigate through a connection in GUI windows.<br />

For more information about the API and the samples, see “Using the Runtime API for the<br />

<strong>Sonic</strong> Management Environment” in the <strong>Progress</strong> <strong>Sonic</strong>MQ Administrative Programming<br />

Guide.<br />

88 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong>MQ and Management Framework features in 8.0.x<br />

Enablement of Metrics and Alerts in Configurations<br />

Previously, all metrics and alerts were runtime settings that persisted across container<br />

shutdowns. The technique has changed so that <strong>Sonic</strong>’s metrics and alerts can be enabled<br />

at configuration time or runtime. Metric and alert enablement at runtime will not persist<br />

across container or component restarts. Certain limitations apply when enabling at<br />

configuration time:<br />

Runtime settings override the configured settings. Runtime settings are not persisted.<br />

See “Monitoring the <strong>Sonic</strong> Management Environment” in the <strong>Progress</strong> <strong>Sonic</strong>MQ<br />

Configuration and Management Guide for more information.<br />

IPv6 Support<br />

Configure Manage<br />

Metrics Non-Instance Yes Yes, overrides Configure<br />

Instance Patterns Yes Yes, overrides Configure<br />

Alerts Non-Instance Yes Yes<br />

Instance Patterns Yes Yes<br />

Notifications Instance Patterns No Yes<br />

For a platform (hardware, JVM, and system configuration) that supports IPv6, you can<br />

define acceptors in IPv6 syntax. The following excerpt shows loopback addresses in IPv4<br />

and IPv6 (for use in development and testing) and well-formed URLs for IPv4 and IPv6:<br />

Note Limitations to IPv6 Support — Some systems have problems with IPv6 that cannot be<br />

addressed in currently supported JVMs. Specifically, <strong>Sonic</strong> 8.0 does not support IPv6 on<br />

Windows for areas of <strong>Sonic</strong>MQ that use NIO, namely:<br />

● Directory Service replication<br />

● HTTP Tunnelling acceptors<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 89


Chapter 3: What was new and changed in prior Version 8 releases<br />

<strong>Sonic</strong>MQ JMS API Tracing<br />

Tracing is now provided for <strong>Sonic</strong>MQ Java applications. The trace levels cover exception<br />

tracing, entry tracing, and instance, argument and exit tracing. The following shows the<br />

display when the Chat sample is set to entry tracing:<br />

C:\Program Files\<strong>Progress</strong>\<strong>Sonic</strong>\MQ8.0\samples\TopicPubSub\Chat><br />

..\..\<strong>Sonic</strong>MQ Chat -u SALES<br />

[timestamp] entering Connection javax.jms.ConnectionFactory.createConnection(String, String)<br />

[timestamp] entering Session javax.jms.Connection.createSession(boolean, int)<br />

[timestamp] entering Session javax.jms.Connection.createSession(boolean, int)<br />

[timestamp] entering Topic javax.jms.Session.createTopic(String)<br />

[timestamp] entering MessageConsumer javax.jms.Session.createConsumer(Destination)<br />

[timestamp] entering void javax.jms.MessageConsumer.setMessageListener(MessageListener)<br />

[timestamp] entering MessageProducer javax.jms.Session.createProducer(Destination)<br />

[timestamp] entering void javax.jms.Connection.start()<br />

Enter text messages to clients that subscribe to the jms.samples.chat topic.<br />

Press Enter to publish each message.<br />

Hello world.<br />

[timestamp] entering TextMessage javax.jms.Session.createTextMessage()<br />

[timestamp] entering void javax.jms.TextMessage.setText(String)<br />

[timestamp] entering void javax.jms.MessageProducer.send(Message)<br />

[timestamp] entering void Chat.onMessage(Message)<br />

[timestamp] entering String javax.jms.TextMessage.getText()<br />

SALES: Hello world.<br />

Ctrl+C<br />

[timestamp] entering void javax.jms.Connection.close()<br />

Tracing has no overhead when it is not in use. Load-time weaving—adding the tracing<br />

code when the class is being loaded by the class loader—means that the aspect was not<br />

present when the application was compiled. So when load-time weaving is not<br />

configured, the application performs as if tracing code did not exist.<br />

See Appendix B of the <strong>Progress</strong> <strong>Sonic</strong>MQ Application Programming Guide for<br />

discussion of the setup and tracing levels of JMS tracing.<br />

Message Grouping<br />

Message grouping—defined by the message producers sending to specifically configured<br />

queues on the broker—provides a mechanism that you might think of as dynamic<br />

exclusive subqueues.<br />

The producer sets a property with a message’s group value, and sends the message to the<br />

broker. This feature must be enabled on a <strong>Sonic</strong>MQ broker on a per-queue basis before<br />

90 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong>MQ and Management Framework features in 8.0.x<br />

message grouping can occur. Each queue configuration enables message group<br />

dispatching of messages to receivers and specifies the property that will determine the<br />

grouping of messages. The default property is JMSXGroupID as shown on the following<br />

queue’s Message Groups tab:<br />

Important When message group handling is enabled on a queue, message selectors on that queue are<br />

not valid. Applications that receive messages on a queue that is enabled for message<br />

grouping will fail if the application uses message selectors.<br />

The broker determines whether it has an assigned active receiver for the message’s group.<br />

If it does, the message goes to the assigned receiver. If it does not, it assigns a receiver to<br />

the group name.<br />

This feature provides advantages when the incoming messages are for diverse groups with<br />

arbitrary names that handle a reasonable number of messages. The limitation is that, like<br />

exclusive queue receivers, when the backlog on a message group’s receiver gets huge, you<br />

cannot add receivers to balance the load.<br />

A <strong>Sonic</strong>MQ sample application is provided, MessageGroupTalk, and the SDM sample<br />

model MessageGrouping describes how models can set the message grouping parameters<br />

on a queue. The sample application demonstrates advantages of message grouping:<br />

● Auto load balancing — Message groups automatically load balances messages. An<br />

additional sender to a new group and a new receiver on the queue show that the new<br />

receiver handles messages from the new sender.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 91


Chapter 3: What was new and changed in prior Version 8 releases<br />

● Consumer affinity — The receivers in the sample show that the messages each<br />

receives are for their assigned group, and that a message group is always associated<br />

with the same receiver while the broker is running.<br />

● Message ordering within a group — The receiver’s let you observe that their<br />

messages for an assigned group always arrive in the order they are sent.<br />

● Automatic failover — When you shutdown a receiver, and then send messages to<br />

groups that the stopped receiver was assigned, you see that the message group is<br />

assigned to another receiver.<br />

See the “Point-to-point Messaging” chapter in the <strong>Progress</strong> <strong>Sonic</strong>MQ Application<br />

Programming Guide for more information on producers and message grouping general<br />

concepts.<br />

See the “Configuring Queues” chapter of the <strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and<br />

Management Guide for details on the queue settings for message grouping.<br />

Metrics on Temporary Queues<br />

For queue metrics, you can select Show Temporary Queue Instances to also list instances<br />

of temporary queues, as shown:<br />

See the “Instance Metrics” section of the “Monitoring the <strong>Sonic</strong> Management<br />

Environment” chapter of the <strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and Management Guide.<br />

Using Patterns to Filter Temporary Queues for Metrics<br />

You can define patterns to select TemporaryQueues if the temporary queues were created<br />

using an overload of the Session.createTemporaryQueue() method lets you supply a<br />

preferred name in a CustomID String, Session.createTemporaryQueue(String customID).<br />

92 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong>MQ and Management Framework features in 8.0.x<br />

See “Temporary Queues” in the “<strong>Sonic</strong>MQ Client Sessions” chapter of the <strong>Progress</strong><br />

<strong>Sonic</strong>MQ Application Programming Guide for more information about setting custom<br />

identifiers on temporary queues.<br />

Support of JSR 160 Consoles<br />

<strong>Progress</strong> <strong>Sonic</strong> provides a JSR 160 connector client to enable JMX consoles such as<br />

JConsole to connect to a managed <strong>Sonic</strong> JVM instance to gain visibility into JVM<br />

behaviors and limited access to <strong>Sonic</strong> components running in the JVM.<br />

<strong>Sonic</strong> limits the access to <strong>Sonic</strong> components so that the advanced security features <strong>Sonic</strong><br />

provides in its administrative tools—<strong>Sonic</strong> Management Console and management<br />

applications—are not compromised. Those features include authentication, authorization,<br />

encrypted communications, and fine-grained management permissions.<br />

Each item in the <strong>Sonic</strong> container exposes three sets of <strong>Sonic</strong> MBean data: Attributes,<br />

Operations, and Notifications. The following screen is an example of Attributes.<br />

Management permissions might limit your ability to make changes. When auditing is<br />

enabled in the Domain Manager, changes are recorded in the audit trail.<br />

See the “Using JSR 160 Compliant Consoles” chapter of the <strong>Progress</strong> <strong>Sonic</strong>MQ<br />

Configuration and Management Guide for more information.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 93


Chapter 3: What was new and changed in prior Version 8 releases<br />

Interbroker Flow Control Notifications<br />

Flow control notifications might show that an interbroker (cluster) connection is causing<br />

publishers to flow-control, but the notifications do not provide enough information to<br />

determine why the interbroker connection is blocked. This enhancement extends flow<br />

control notifications to include notifications for blocked interbroker connections,<br />

including identification of the consumers and destinations that are causing the flow<br />

control condition.<br />

The property Flow Control Monitor Interval is enabled by default on a cluster, as shown:<br />

The default value is 15 seconds. A value of 0 means that the brokers will not be monitored<br />

for flow control. The management property is dynamic: when the monitor interval is<br />

changed, it will take a couple monitor intervals for the change to be reflected in the<br />

notifications.<br />

For details about the setting, see the “Clusters” section of the “Configuring <strong>Sonic</strong>MQ<br />

Brokers” chapter of the <strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and Management Guide.<br />

See also “Enabling Flow Control Notifications on a Cluster” in the <strong>Progress</strong> <strong>Sonic</strong>MQ<br />

Administrative Programming Guide for information about setting interbroker flow<br />

control notifications with the configuration parameter CLUSTER_FC_MONITOR_INTERVAL.<br />

When a cluster has a positive Flow Control Monitor Interval value, the cluster will provide<br />

two notifications: a pause notification to note that a broker connection is unable to send<br />

messages, and a resume notification to note that sending has resumed.<br />

94 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong>MQ and Management Framework features in 8.0.x<br />

For details about the notifications, see the “Broker Notifications in Clusters” section of<br />

the “Managing <strong>Sonic</strong>MQ Brokers” chapter of the <strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and<br />

Management Guide.<br />

For details about the setting, see the “Clusters” section of the “Configuring <strong>Sonic</strong>MQ<br />

Brokers” chapter of the <strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and Management Guide.<br />

HTTP Support for Authentication by an External Security Domain<br />

HTTP clients can use <strong>Sonic</strong>MQ’s Pluggable Authentication and Security Service (PASS)<br />

feature, enabling an external security domain for user authentication and authorization—<br />

provided that the broker on which the acceptors are defined is configured to use an<br />

external security domain. See the “HTTP(S) Direct Acceptors and Routings” chapter of<br />

the <strong>Progress</strong> <strong>Sonic</strong>MQ Deployment Guide for more information.<br />

Enable Actional Log Interceptor<br />

Actional 8.0 introduced a new kind of interceptor, the Actional Logging interceptor. This<br />

interceptor allows for the reporting of application logs which correlate to intercepted<br />

interactions. <strong>Sonic</strong> has created a <strong>Sonic</strong> Logging interceptor to augment the Actional<br />

logging interceptor so that messages originating from the <strong>Sonic</strong> logging framework can<br />

also be captured through Actional.<br />

Container configurations can create application log entries that correlate to intercepted<br />

interactions, and record the entries in the <strong>Sonic</strong> logging framework by selecting the option<br />

Enable Actional Log Interceptor on the container’s Logging and Auditing tab.<br />

Then, you must specify two Java system properties on the container’s Environment tab to<br />

modify the interceptor’s behavior:<br />

● com.progress.sonic.actional.soniclog.maxMsgSize<br />

● com.progress.sonic.actional.soniclog.disableLogOutput<br />

This feature requires a <strong>Progress</strong> Actional Agent running on the local system. See your<br />

<strong>Progress</strong> representative for more information.<br />

For details about setting container properties, see the “Configuring Containers and<br />

Collections” chapter of the <strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and Management Guide.<br />

CONNECT_PING_TIMEOUT No Longer Defaults to Indefinite<br />

The advanced broker property CONNECTION_TUNING_PARAMETERS.CONNECT_PING_TIMEOUT<br />

provides a mechanism to force an existing connection to disconnect if it does not respond<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 95


Chapter 3: What was new and changed in prior Version 8 releases<br />

to a ping in the specified timeout interval (in milliseconds). A setting of zero (0) specifies<br />

immediate disconnection of the existing connection. If this property is not set, a Version<br />

7 broker would assume the default behavior of blocking indefinitely until either the ping<br />

succeeds or the socket fails. In <strong>Sonic</strong>MQ 8.0, if this property is not set, the broker uses the<br />

default value of 30000 (30 seconds.)<br />

Default SSL is JSSE; RSA requires business arrangement<br />

<strong>Sonic</strong>’s transition away from supplying RSA SSL by default involves several changes.<br />

RSA SSL is optional<br />

<strong>Sonic</strong>MQ SSL relies entirely on JSSE. If you have a business arrangement with RSA<br />

Security, you can add the RSA libraries to the broker locations and then enable the broker<br />

to use RSA SSL. If you are using Certificate Revocation Lists (CRLs), you need to use<br />

RSA libraries.<br />

Runtime Support for RSA-to-JSSE Migration<br />

For large deployments, it might not be feasible to manually convert all existing certificate<br />

and private keys into the key stores and/or trust stores that are supported by JSSE. You<br />

would also have to modify your configuration to reflect the use of new JSSE key store<br />

and/or trust store and equivalent JSSE cipher suite(s).<br />

To handle these tasks, <strong>Sonic</strong>’s JSSE functionality will:<br />

● Populate JKS key stores from PKCS7 encoded certificates and PKCS8 encoded<br />

private keys<br />

● Populate JKS trust stores from x.509 certificates<br />

● Map RSA cipher suite(s) to equivalent JSSE cipher suite(s) on the fly.<br />

By default, this runtime mapping/conversion will take place if the broker is configured to<br />

use the RSA SSL provider. Runtime conversion and mapping takes place on the broker as<br />

well as on the client if—and only if—a JSSE-based Keystore and Truststore is not<br />

configured.<br />

Populating JSSE Key Store from PKCS7 Certificate Chain & PKCS8<br />

Private Key<br />

When starting a SSL acceptor or opening an outbound SSL connection, certificates and<br />

private keys configured with the RSA SSL provider will be loaded by the broker to<br />

96 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong>MQ and Management Framework features in 8.0.x<br />

populate a JSSE key store. The transient in-memory key store will not be written back<br />

to the disk.<br />

Populating JSSE Trust Store from X.509 Certificates<br />

A truststore is a special purpose keystore that is used to decide what entities to trust. When<br />

the SSL client authentication is enabled for an acceptor, the CA certificates with the RSA<br />

SSL provider will be loaded by the broker to populate a JSSE trust store to validate the<br />

client certificates. The transient in-memory trust store will not be written back to the disk.<br />

Cipher Suites Mapping<br />

During upgrade, the list of cipher suites will be modified to reflect the migration from<br />

RSA to JSSE. Likewise, all cipher suites will be identified using the standard cipher suite<br />

names listed in Sun's JSSE Reference Guide.<br />

Important Unsupported RSA Cipher Suites — The following RSA cipher suites can not be mapped<br />

to any equivalent JSSE cipher suites:<br />

● RSA_With_RC2_CBC_MD5<br />

The following RSA suites provide key exchange without authentication:<br />

● DH_DSS_Export_With_DES_40_CBC_SHA<br />

● DH_DSS_With_AES_128_CBC_SHA<br />

● DH_DSS_With_AES_256_CBC_SHA<br />

● DH_RSA_With_AES_128_CBC_SHA<br />

● DH_RSA_With_AES_256_CBC_SHA<br />

The following suite is a no-op:<br />

● Null_With_Null_Null (no-op)<br />

Certificate Conversion Utility<br />

A utility tool lets you convert existing private keys and certificates into a JSSE key store<br />

or trust store on the disk. Using this utility, you can:<br />

● Convert PKCS7 certificate chain and encrypted PKCS8 private key into a JKS key<br />

store.<br />

● Convert PKCS7 certificate chain and encrypted PKCS8 private key into a PKCS12<br />

key store.<br />

● Convert a list of trusted CA certificate into a JKS trust store.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 97


Chapter 3: What was new and changed in prior Version 8 releases<br />

See “Using the RSA to JSSE Migration Tool” in the “SSL and HTTPS Tunneling<br />

Protocols” chapter of the <strong>Progress</strong> <strong>Sonic</strong>MQ Deployment Guide for more information.<br />

After the conversion, the SSL settings must be <strong>update</strong>d accordingly to point to the<br />

corresponding Keystore and Truststore.<br />

Certificate Manager Tool No Longer in the Management Console<br />

The <strong>Sonic</strong> Management Console no longer provides a Certificate Manager Tool.<br />

Client SSL Settings<br />

Client side SSL setting uses Java system properties. For the 8.0 release, the SSL client<br />

runtime will default to JSSE in the absence of the SSL_PROVIDER_CLASS property. Clients<br />

not using the SSL provider property require no changes, and no action is needed.<br />

To switch/migrate from RSA SSL to JSSE after upgrade, change the SSL Provider<br />

property to JSSE (or simply remove it) and leave all other SSL settings unchanged, for<br />

example:<br />

-DSSL_PROVIDER_CLASS= progress.message.net.ssl.jsse.jsseSSLImpl<br />

To continue to use RSA SSL after upgrading (and licensing with RSA for the libraries),<br />

leave all SSL settings unchanged, for example:<br />

-DSSL_PROVIDER_CLASS= progress.message.net.ssl.jsafe.jsafeSSLImpl<br />

Improved Tuning Information for Platform Fast Failover<br />

Field personnel that have been achieving optimal fast failover for our customers suggested<br />

adding, removing, and changing the recommendations. Settings that are discussed are, on<br />

Windows, TcpMaxDataRetransmissions and TcpMaxConnectRetransmissions, and, on<br />

Linux, tcp_retries2 and tcp_syn_retries.<br />

This revised information is in the “Tuning TCP to Optimize CAA Failover” chapter of the<br />

<strong>Progress</strong> <strong>Sonic</strong>MQ Performance Tuning Guide.<br />

98 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong>MQ and Management Framework features in 8.0.x<br />

C Client: Releasing Objects and Avoiding Memory Leaks<br />

This section in <strong>Progress</strong> <strong>Sonic</strong>MQ C Client Guide 8.0 was enhanced at customer request.<br />

When you finish with an HOBJ, you must explicitly call a release method and give it an<br />

object reference as in this excerpt from the Talk.c sample application:<br />

Code Sample 1. Releasing Objects<br />

/* Clean up. Order doesn't matter. */<br />

if (msg)<br />

Message_release(msg, &retval);<br />

/* <strong>Sonic</strong>MQ allocated this one, so "release" it. */<br />

if (textObj)<br />

String_release(textObj, &retval);<br />

/* Application allocated this one, so "free" it. */<br />

if (text)<br />

free(text);<br />

If you do not release the HOBJs, remaining references will cause memory leaks. Note that<br />

all *_release API are mapped to Object_release so that Object_release can be called to<br />

release any HOBJ.<br />

Also, be sure to close and destroy connections or they will cause memory leaks. The<br />

correct sequence is to close the producer (publisher or sender), then the session, and then<br />

the connection.<br />

Every _release() function decrements its argument object’s ref count, and objects are<br />

destroyed when their ref counts reach 0. When you are done with an HOBJ, release it—<br />

if the <strong>Sonic</strong> Client runtime needs a reference to that object, it will keep that reference and<br />

your _release will not destroy the object. If the runtime needs to copy the contents of the<br />

object into some other representation, it will do it and will not keep a reference to the<br />

original object so that your _release() will destroy the object (provided that it was the last<br />

reference to it.)<br />

In summary, release HOBJs when your code does not need them anymore and trust the<br />

runtime to do the right thing. (In much the same way that the Win32 API exposes kernel<br />

objects via handles to them and operations on those handles.)<br />

This revised information in the “Programming with the C Client” chapter of the <strong>Progress</strong><br />

<strong>Sonic</strong>MQ C Client Guide. Also, a C code example is listed there that sets and then releases<br />

string properties. You can copy the example’s text, build it, and then try it.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 99


Chapter 3: What was new and changed in prior Version 8 releases<br />

<strong>Sonic</strong> ESB and Workbench features in 8.0.x<br />

The following features were introduced in <strong>Sonic</strong> ESB in 8.0 SP 1:<br />

● “Process Continuations” on page 101<br />

● “Message Compression Parameters for ESB Connections” on page 105<br />

● “Additional New Init Parameters for ESB Connections” on page 106<br />

● “New Tuning Configuration Options for <strong>Sonic</strong> Connect Services” on page 106<br />

● “Support for Expressions in XPath Routing Rules” on page 107<br />

● “Resubmit Count is Exposed in Workbench” on page 106<br />

● “Support for Expressions in XPath Routing Rules” on page 107<br />

The following features were introduced in <strong>Sonic</strong> ESB Version 8.0:<br />

● Full Support for RESTful Web Service Development and Integration — Invoke and<br />

implement RESTful Web services using the <strong>Sonic</strong> Connect service. This functionality<br />

is documented under “Working with RESTful Web services” in the “<strong>Progress</strong> <strong>Sonic</strong><br />

Workbench User Guide” section of the <strong>Sonic</strong> Workbench online help.<br />

● Full Support for Open, Fully Standards-Compliant Programming Model — Develop<br />

applications for the <strong>Sonic</strong> ESB that take advantage of an open, fully standardscompliant<br />

programming model, consisting of the following features:<br />

■ New Web Services Stack Based on Market Leading Apache CXF — Invoke and<br />

implement Web services using the <strong>Sonic</strong> Connect service, giving you improved<br />

performance, greater ease of use, and more complete standards support.<br />

■ Ability to Host JAX-WS and JAX-RS POJOs in a <strong>Sonic</strong> ESB Container — Hosting a<br />

JAX-WS/JAX-RS POJO in an ESB container provides a number of benefits<br />

including centralized management, load balancing, and optimized access to the<br />

implemented resources from ESB processes<br />

This functionality is documented under “Working with WS-* Web services” and<br />

under “Working with RESTful Web services” in the “<strong>Progress</strong> <strong>Sonic</strong> Workbench User<br />

Guide” section of the <strong>Sonic</strong> Workbench online help.<br />

The following features were also introduced in <strong>Sonic</strong> ESB in 8.0:<br />

● “Improved Fault Handling within ESB Processes” on page 114<br />

● “Message Mapping” on page 115<br />

● “Fault Handling with <strong>Sonic</strong> Interceptors” on page 116<br />

● “Service Configuration Editor” on page 117<br />

● “<strong>Sonic</strong> Connect Projects” on page 117<br />

100 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


● “<strong>Sonic</strong> Connect Editor” on page 118<br />

● “Dispatch Service Step” on page 119<br />

<strong>Sonic</strong> ESB and Workbench features in 8.0.x<br />

● “Flow Termination Steps” on page 120<br />

The following changes were introduced in <strong>Sonic</strong> ESB in 8.0 SP 1:<br />

● “Change: WS-RM Processing is Disabled by Default”<br />

● “Change: Spring Configuration Changes for JAX-WS POJOs”<br />

Process Continuations<br />

This new feature includes an API and a sample.<br />

When modeling ESB processes, you can use process continuations to:<br />

● Save the state of a running process instance<br />

● Terminate the process instance<br />

● Continue the process instance at a later time using the saved process state<br />

This new feature includes an API and a sample.<br />

Process state is stored in XQProcessContinuation objects. After saving process state to an<br />

XQProcessContinuation object, you can choose where you want the process to continue.<br />

You do not have to resume execution in the same thread, service, or container where the<br />

process originally executed; you can continue execution in a different thread, service, or<br />

container altogether. You can also change the process state before saving it—for example,<br />

you can change the next step, which determines where the process should resume<br />

execution.<br />

The term passivation refers to the combined actions of saving (and possibly modifying)<br />

the process state and then terminating process execution. The term activation refers to the<br />

combined actions of retrieving the saved process state and using it to continue process<br />

execution.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 101


Chapter 3: What was new and changed in prior Version 8 releases<br />

An XQProcessContinuation object stores up to three levels of process state, described in<br />

the following table. Depending on the level, the size of the XQProcessContinuation object<br />

can vary from a few bytes (level 0) to a few kilobytes (level 2).<br />

Level Description<br />

0 At this level, the XQProcessContinuation object contains a minimal set of process<br />

state, such as the name of the process and the next step. If the process instance is a child<br />

process, the process state at this level also includes the 0 name of the top-level process<br />

and the composite name of the child process and its next step. All other process<br />

context—for example, exit, RME, and fault endpoints; process context properties; and<br />

tracking information—is lost.<br />

1 At this level, the XQProcessContinuation object contains the level-0 information plus<br />

all other process context information. You can access the additional process context by<br />

calling the XQProcessContinuation.getProcessRuntime() method.<br />

2 At this level, XQProcessContinuation object contains the level-1 information plus<br />

other information about the itinerary. Level 2 is useful if you expect the process<br />

definition to change between the time the process is passivated and activated. Large<br />

continuation objects at this level are not ideal for including as message headers but are<br />

suitable for other persistence use cases.<br />

Process continuations are useful whenever you want to interrupt process execution and<br />

resume it at a later time. Process continuations can facilitate the handling of asynchronous<br />

responses, if you want to interrupt process execution after sending the request. For<br />

example, suppose that an ESB process step invokes a long running process—a process<br />

that takes hours or possibly days to generate a response. Using process continuations, you<br />

can model this invocation as a one-way request and pass the continuation as a message<br />

header in the one-way request, and then you can passivate the calling process. When, at<br />

some future time, the response is returned with the continuation header, another ESB<br />

process or service can listen for the response and then activate the original calling process,<br />

allowing it to resume execution where it left off.<br />

How Process Continuations Work<br />

After you identify an ESB process whose execution you want to interrupt and resume at<br />

a later time, you must add a service step to the ESB process—a step that invokes a custom<br />

service responsible for passivation. You must also implement this passivating service. In<br />

your implementation, the service must obtain an XQProcessContinuation object and<br />

modify its contents as needed (for example, to specify the step in the process where<br />

102 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong> ESB and Workbench features in 8.0.x<br />

execution should continue when the ESB process is activated). Your implementation must<br />

also decide what to do with the XQProcessContinuation object in the gap of time after<br />

passivation and before activation. Depending on your particular use case, you might<br />

decide to persist the XQProcessContinuation object to a database, serialize it to a file, or<br />

add it to a message header of the outgoing message. If you want to persist the object to a<br />

database or serialize it to a file, you must also create a class that implements the<br />

XQProcessContinuationHandler interface. If you want to add the continuation object to a<br />

message header, you can use the MsgHeaderContinuationHelper class, which already<br />

implements the XQProcessContinuationHandler interface. This class transforms the<br />

XQProcessContinuation object into a Base64-encoded string and adds it as a header to the<br />

outgoing message. (The process continuation sample uses the<br />

MsgHeaderContinuationHelper class to add the continuation object to a message header.)<br />

When modeling the ESB process, you must also decide how to terminate its execution,<br />

which is the final stage of passivation. You can terminate the ESB process either by<br />

explicitly adding a terminate step or by implementing the passivating service in such a<br />

way that it adds no messages to its outbox. (The process continuation sample uses a<br />

terminate step to terminate process execution.)<br />

After deciding how you want to implement passivation, you must implement a custom<br />

service that is responsible for activation. How you implement the activating service<br />

depends on your passivation strategy. For example, if you chose to persist<br />

XQProcessContinuation objects to a database, then you might choose to implement a<br />

database-polling strategy to retrieve the objects from the database. Similarly, if you chose<br />

to serialize the XQProcessContinuation objects to the file system, then you might choose<br />

to implement a file-polling strategy. (The process continuation sample retrieves the<br />

XQProcessContinuation object from a message header using the<br />

MsgHeaderContinuationHandler class.) You might also create a correlation id, and then use<br />

that correlation key to retrieve the continuation based on some external event like a timer<br />

going off, a message arriving on an async transport, and so on.<br />

Note The passivating and activating services can be implemented as a single custom service.<br />

Separating them into two custom services is not required. In fact, the process<br />

continuation sample uses a single service both for passivation and for activation.<br />

After retrieving the XQProcessContinuation object, the activation service uses the<br />

information in the object to continue (activate) the ESB process. The service calls the<br />

XQServiceContext class's getProcessContinuationAddress(XQProcessContinuation<br />

continuation) method to obtain an XQAddress object. The service then creates an<br />

XQEnvelope object where the XQAddress object is the only address in the envelope and puts<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 103


Chapter 3: What was new and changed in prior Version 8 releases<br />

the envelope into the service's outbox by calling the XQServiceContext class's<br />

addOutgoing(XQEnvelope env) method.<br />

In summary, process continuations require the coordinated actions of the following<br />

artifacts:<br />

● A calling ESB process — An ESB process whose execution is interrupted and whose<br />

state is passivated. This process must:<br />

■ Invoke a custom service that is capable of passivating the process continuation<br />

information.<br />

■ If necessary, provide conditional logic to terminate process execution. This logic<br />

can, for example, test for the presence of the continuation header in the inflight<br />

message; if the header is present, the process can branch to a terminate step.<br />

Depending on how the passivating service is implemented, the calling ESB<br />

process might not have to add a terminate step—for example, if the passivating<br />

service adds no messages to its outbox, the calling ESB process will effectively<br />

terminate when the service call returns.<br />

■ Continue execution after being resumed by an activating ESB service or process.<br />

A passivating service — A custom service that is responsible for:<br />

■ Using the XQProcessContext.getContinuation() method to obtain an<br />

XQProcessContinuation object. This object contains all of the continuation<br />

information for the calling ESB process.<br />

■ Calling the XQProcessContinuation.setStepName(String stepName) method,<br />

whose purpose is to specify where in the calling ESB process execution should<br />

resume.<br />

■ Optionally making other changes to the XQProcessContinuation object.<br />

■ Implementing a strategy for temporarily saving the XQProcessContinuation object<br />

until it is used to activate the calling ESB process. To do this, the service must<br />

invoke the save(XQMessage message, XQServiceContext serviceContext,<br />

XQProcessContinuation continuation) method of a class implementing the<br />

XQProcessContinuationHandler interface.<br />

An activating service — A custom service that is responsible for:<br />

■ Calling the retreive(XQMessage message, XQServiceContext serviceContext)<br />

method of a class implementing the XQProcessContinuationHandler interface.<br />

This method returns an XQProcessContinuation object.<br />

■ Optionally making other changes to the XQProcessContinuation object.<br />

104 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong> ESB and Workbench features in 8.0.x<br />

■ Calling the getProcessContinuationAddress(XQProcessContinuation<br />

continuation) method of the XQServiceContext class to obtain an XQAddress<br />

object indicating where the calling ESB process should resume execution.<br />

■ Placing the inflight message into the activating service's outbox (the message<br />

must be the only one in the outbox), causing the ESB to deliver the message to<br />

the XQAddress returned by the<br />

getProcessContinuationAddress(XQProcessContinuation continuation)<br />

method.<br />

This information has been added to the <strong>Sonic</strong> Workbench online help in the Workbench<br />

and in its PDF version, <strong>Sonic</strong> ESB Developer's Guide. In addition, those locations detail<br />

the Process Continuations API and the new sample.<br />

New Sample for Process Continuations<br />

The sample shows how you can use continuations to model potentially long running<br />

processes that can continue processing after receiving asynchronous responses. The<br />

sample contains a Sample.Continuation.LongRunning process that simulates sending a one<br />

way invocation and then continuing the process after receiving the asynchronous<br />

response. For more information about running this sample, see the readme.txt file in the<br />

Continuation folder.<br />

Message Compression Parameters for ESB Connections<br />

In the <strong>Sonic</strong> Management Console, the ESB Configured Objects definition supports<br />

message compression in ConnectionFactoryParameters parameter:<br />

● Enable Compression — When selected, requires connections that use this connection<br />

factory to perform message compression before sending messages, and requires the<br />

broker to deliver compressed messages to connections that use this connection<br />

factory. The setting could be overridden by the client.<br />

● Custom Compression Factory — Specifies the custom class that defines message<br />

compression and decompression.<br />

This information has been added to the “ESB Endpoints and Connections” chapter of the<br />

<strong>Progress</strong> <strong>Sonic</strong> ESB Configuration and Management Guide.<br />

See “Message Compression” on page 77 for more information about this new feature.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 105


Chapter 3: What was new and changed in prior Version 8 releases<br />

Additional New Init Parameters for ESB Connections<br />

The Init Parameters on the Connections tab of a <strong>Sonic</strong>MQ Endpoint configuration now let<br />

you set parameters that were previously available on Administered Objects but not in<br />

endpoint configurations:<br />

● Enable load balancing — Select to enable the requested connection to be redirected<br />

for load balancing if necessary. If not selected, the requested connection cannot be<br />

redirected.<br />

● Monitor Interval — When flow control blocking is sustained, an application producer<br />

session can be prevented from producing messages for a significant period of time;<br />

that time is the monitoring interval. The Flow Control Monitor Interval defines the<br />

duration of the monitoring interval as a non-negative integer number of seconds. A<br />

value of 0 indicates that flow control monitoring is disabled for all sessions on the<br />

connection. The default value is 60 seconds.<br />

● Socket Connect Timeout — Sets a timeout on the socket after a specified time<br />

interval. Enter the positive integer number of milliseconds before a connection<br />

attempt should time out. Setting the value to 0, the default value, means to never time<br />

out. See the chapter “<strong>Sonic</strong>MQ Connections” in the <strong>Progress</strong> <strong>Sonic</strong>MQ Application<br />

Programming Guide for more information about this feature.<br />

New Tuning Configuration Options for <strong>Sonic</strong> Connect Services<br />

<strong>Sonic</strong> Connect now supports configuration properties to tune the number of available<br />

HTTP connections and server threads. The default properties file for a <strong>Sonic</strong> Connect<br />

service will include properties for these options where appropriate:<br />

● For an exposed Web service or RESTful Web service, the http.maxServerThreads and<br />

http.minServerThreads properties are used to determine the number of available<br />

threads for serving requests.<br />

● For a Web service or RESTful Web service client the http.maxConnections property<br />

can be used to constraint the number of concurrent HTTP connections.<br />

See Working with RESTful Web services for more about <strong>Sonic</strong> Connect thread/connection<br />

tuning.<br />

Resubmit Count is Exposed in Workbench<br />

For a resubmit step, you can now define an optional Number of resubmit attempts<br />

parameter. See the <strong>Progress</strong> <strong>Sonic</strong> ESB Developer's Guide for details on how the resubmit<br />

count affects fault handling.<br />

106 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Support for Expressions in XPath Routing Rules<br />

<strong>Sonic</strong> ESB and Workbench features in 8.0.x<br />

This release introduces an additional source for running XPath rules in the XCBR file.<br />

You can now specify an expression. With the use of standard <strong>Sonic</strong> expressions, this<br />

feature enables you to route based on process context properties, contents and headers of<br />

the message, properties in a property file, container deployment property and System<br />

properties. Refer to the <strong>Progress</strong> <strong>Sonic</strong> ESB Developer's Guide for the expression syntax.<br />

Change: WS-RM Processing is Disabled by Default<br />

By default, support for WS-RM (WS Reliable Messaging) is disabled in ESB. If you use<br />

WS-RM then you must configure the Process Engine to enable WS-RM for your ESB<br />

processes. Refer to release note SNC0007<strong>850</strong>7 for how to apply this configuration change.<br />

Change: Spring Configuration Changes for JAX-WS POJOs<br />

There are some changes to the generated spring configuration for deploying a JAX-WS<br />

POJO to a <strong>Sonic</strong> Connect service. <strong>Sonic</strong> Connect services created with Workbench 8.0<br />

that host JAX-WS POJOs must be <strong>update</strong>d and then redeployed. Refer to release note<br />

SNC00078898 for details on modifying your spring.xml file.<br />

Improved Documentation: Tailoring With PropertyMaps and the<br />

artifactName Attribute<br />

The following material was added or revised in the “Adjusting Tailoring Rules to Apply<br />

When Creating Map Files” section of the “Mapping ESB Artifacts to Target Domains”<br />

chapter of the <strong>Progress</strong> <strong>Sonic</strong> ESB Deployment Guide.<br />

References within files — String mappings also apply to strings within files, even if they<br />

are packaged within the XAR (such as a CSAR package). You need to be careful in raw<br />

string replacements to qualify your search string, and to avoid mapping key words, fixed<br />

namespaces, and related artifacts by string replacement. This feature is most useful for<br />

replacing URLs and references. For example, the following line might be for mapping<br />

references to targets used in the test environment:<br />

<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 107


Chapter 3: What was new and changed in prior Version 8 releases<br />

Whereas the same line in the production map might be:<br />

<br />

Constraining references to a specified file — You can limit a string replacement to a<br />

specific file by adding the artifactName attribute, as shown for Readme.txt:<br />

<br />

Phases of tailoring — String replacement can be applied in the tailoring rules which<br />

propagate to map file. The map files can be extended or further edited. You could either:<br />

● Do general changes in a general tailoring file—such as replacing<br />

sonicfs:///workspace/ with sonicfs:///com.myCorp/—and refine the projectspecific<br />

mappings in the map file for each target domain.<br />

● Do detailed changes in project-specific tailoring files so that map files can focus on<br />

finer tuning—such as the routings and quality of service—for each target domain.<br />

Adding Property Mapping Rules<br />

You can append a PropertyRules section at the end of the tailoring rules file to enable<br />

mapping the value of a specific property name to your preferred value. For example:<br />

<br />

<br />


<strong>Sonic</strong> ESB and Workbench features in 8.0.x<br />

Constraining property mapping to a specified file — You can limit property value<br />

replacement to a specific .properties or .props file by adding the artifactName attribute,<br />

as shown for ESBToREST.properties:<br />

<br />

<br />

<br />

<br />

<br />

Using StringReplace and PropertyReplace Content Change Rules<br />

The content change rules, StringReplaceMaps and PropertyReplaceMaps, are closely<br />

related. The following sections contain information about using both types.<br />

Rule Processing<br />

When you apply a map, its content change rules are processed as follows:<br />

1. PropertyReplaceMaps are processed before StringReplaceMaps and are checked for<br />

named rules and generic rules.<br />

■ If both a named rule and a generic rule exist, and both affect the same property,<br />

the named rule takes precedence over the generic rule. Best practice is to make<br />

sure that a named property file contains only one instance of a named property,<br />

because multiple instances may cause unpredictable results.<br />

■ If multiple generic rules exist, they are processed in a top-down manner. If<br />

multiple generic rules affect the same property, the last rule found in the map (that<br />

is, the rule nearest to the bottom) takes precedence. Best practice is to have only<br />

one generic rule.<br />

■ Generic rules extend to all properties files in the XAR and any component<br />

packages. Best practice is to use only named properties files, unless you are<br />

comfortable with changing properties globally.<br />

2. After all PropertyReplaceMaps are completed, StringReplaceMaps are processed.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 109


Chapter 3: What was new and changed in prior Version 8 releases<br />

■ StringReplaceMaps are checked to determine the order of rules (specified with the<br />

order attribute) and then processed in the specified order. Unordered rules are<br />

processed after ordered rules.<br />

■ You can add an artifactName property to a StringReplaceMap to constrain its<br />

scope to the named file. But the rule is still processed in the stated order.<br />

■ If there are multiple unordered StringReplaceMaps, they are processed in a topdown<br />

manner. Best practice is to use only ordered rules, because multiple rules<br />

with no specific order may cause indeterminate results.<br />

Creating Properties Files<br />

It is good practice to make additional copies of properties files in preparation for tailoring.<br />

For example, copying ESBToREST.properties to ESBToREST_test.properties and<br />

ESBToREST_production.properties in <strong>Sonic</strong>FS makes tailoring a bit easier. The alternative<br />

would be to extract the properties file from the XAR, make a named copy, and then add<br />

them back in to the XAR.<br />

This information was added to the “Mapping ESB Artifacts to Target Domains” chapter<br />

of the <strong>Progress</strong> <strong>Sonic</strong> ESB Deployment Guide.<br />

Improved Documentation: When mapping ESB artifacts always<br />

replace the name “workspace”<br />

This information was added to the Adjusting Tailoring Rules to Apply When Creating Map<br />

Files section of the “Mapping ESB Artifacts to Target Domains” chapter of the <strong>Progress</strong><br />

<strong>Sonic</strong> ESB Deployment Guide at 8.0 SP 1.<br />

While you can revise the string replacement of sonicfs: path references from workspace<br />

to no name or any specified name, you should never leave the name workspace in a<br />

deployment configuration as it might trigger behaviors not intended for deployment<br />

environments.<br />

This information was added to the Adjusting Tailoring Rules to Apply When Creating Map<br />

Files section of the “Mapping ESB Artifacts to Target Domains” chapter of the <strong>Progress</strong><br />

<strong>Sonic</strong> ESB Deployment Guide at 8.0 SP 1.<br />

The container caches a new copy of a file for each invocation of the service if a required<br />

file is located in the sonicfs:///workspace directory. This is by design, because the<br />

workspace directory is only intended for development. To stop the container from caching<br />

a new copy of a file for each invocation of the service, move the file outside of the<br />

workspace directory within the Directory Service storage, e.g. sonicfs:///MyFolder/.<br />

110 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Improved Documentation: Dispatch Service<br />

<strong>Sonic</strong> ESB and Workbench features in 8.0.x<br />

The Dispatch service documentation was improved at 8.0 SP 1 as follows:<br />

Using a Dispatch service<br />

When you model an ESB process, you can use a Dispatch service to dispatch messages to<br />

ESB endpoints, ESB services, ESB processes, or sonic or jndi addresses. A jndi address<br />

can further resolve to a JMS destination. (See Format of the lookup name in <strong>Progress</strong><br />

<strong>Sonic</strong> 8.0 SP1 Developer's Tools.)<br />

When you dispatch a message, it is delivered outside of the current process context—that<br />

is, the dispatched message contains no process context information. So when you invoke<br />

an ESB service (or ESB process) using a Dispatch step, the ESB framework does not<br />

override the invoked service's (or process's) exit endpoints.<br />

The Dispatch service can dispatch messages in either a one-way pattern or in a<br />

request/reply pattern. If you want to use the request/reply type pattern, be sure that the<br />

ESB service or ESB process receiving the request has one of its exit endpoints set to<br />

REPLY_TO; otherwise, the response message cannot be successfully returned to your calling<br />

ESB process.<br />

You can indirectly dispatch a message to a JMS destination by dispatching the message<br />

to an ESB endpoint that resolves to the JMS destination or by dispatching to a jndi<br />

address that resolves to a JMS destination. However, if you dispatch a message to an ESB<br />

endpoint as part of a request/reply type message exchange, keep in mind that an ESB<br />

endpoint, unlike an ESB service or ESB process, has no configured exit endpoints—so<br />

the reply must be handled through the JMS layer, via the JMSReplyTo property. This is also<br />

true of a JMS destination resolved from a jndi lookup. If the JMS application receiving<br />

the request does not reply within the Dispatch service's configured timeout interval, the<br />

invocation results in a rejected message (see fault in <strong>Progress</strong> <strong>Sonic</strong> Developer's Guide).<br />

The Dispatch service supports message mapping. (See Message Mapping in <strong>Progress</strong><br />

<strong>Sonic</strong> Developer's Guide.)<br />

Specifying Properties for a Dispatch Service<br />

You specify properties for a Dispatch service in the Runtime Parameters section of the<br />

Service tab. You can use a variable (See the <strong>Progress</strong> <strong>Sonic</strong> Developer's Tools) to specify<br />

the value of the Destination, Message Exchange, and Reply Timeout properties. If you<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 111


Chapter 3: What was new and changed in prior Version 8 releases<br />

are using a variable to specify the value, you must click the checkbox in the table cell<br />

between the Name and Value columns before editing the Value field directly.<br />

Property Required Description<br />

Destination Yes Destination to which the message is dispatched—either<br />

an ESB endpoint, ESB service, ESB process, sonic<br />

address, or jndi address. A jndi address can further<br />

resolve to a JMS destination.<br />

ESB Quality<br />

of Service<br />

Message<br />

Exchange<br />

Reply<br />

Timeout<br />

No Quality of Service to use for the dispatched message.<br />

Valid values are: Best Effort, At Least Once, and<br />

Exactly Once. Default is Best Effort.<br />

Yes Message exchange pattern for the dispatched message. Valid<br />

values are: One Way and Request/Reply. Default is One<br />

Way. In Request/Reply mode, if the Dispatch service uses an<br />

ESB process or ESB service address, the Dispatch service<br />

gets the entry endpoint of the ESB process or ESB service and<br />

then sends a message by setting a JMSReplyTo header to a<br />

temporary destination where it waits for the response.<br />

Therefore, the Dispatch service imposes the following<br />

restrictions on the ESB services and processes that can be<br />

invoked in Request/Reply mode: First, the ESB service or<br />

ESB process should be configured with an entry endpoint.<br />

Second, at least one of the exit endpoints should be set to<br />

REPLY_TO. And third, the fault and RME destinations should<br />

also be REPLY_TO if you want the faults and rejected messages<br />

to be returned to the Dispatch service<br />

No Timeout value, in seconds, to wait for the response; applies<br />

only to request/reply message exchanges. Default is 30<br />

seconds. If the response is not returned in the timeout<br />

interval, the failed dispatch results in a rejected message.<br />

Dispatch service example<br />

<strong>Sonic</strong> Workbench provides a sample demonstrating the Dispatch service. The sample is<br />

contained in the Samples.ESB<br />

The sample shows how the Dispatch service can be used from within an ESB process to<br />

make a one-way or request-reply invocation to an ESB address. The dispatch step also has<br />

112 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong> ESB and Workbench features in 8.0.x<br />

support for message mapping that allows you to customize the request and reply (in case<br />

of request/reply) messages.<br />

Support for Variables in the Dispatch Service<br />

You can specify the value of the Destination, Message Exchange, and Reply Timeout<br />

properties. The value of these properties can be obtained from the incoming message or<br />

from a property file, container deployment property, or system property.<br />

Support for sonic and JNDI URI in the Dispatch Service<br />

The target for a Dispatch step can be specified in a Destination property as a sonic or<br />

JNDI URL, in addition to an ESB address.<br />

This improved documentation has been added to the <strong>Sonic</strong> Workbench online help in the<br />

Workbench and in its PDF version, Working with Built-in ESB Services.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 113


Chapter 3: What was new and changed in prior Version 8 releases<br />

Improved Fault Handling within ESB Processes<br />

<strong>Sonic</strong> ESB provides a built-in scheme for handling faults (and RME messages) using<br />

process modeling constructs. This scheme enables you to handle faults and RME<br />

messages directly in ESB processes, without modifying any underlying service code, in a<br />

manner that is analogous to how Java handles exceptions.<br />

This functionality is documented under “Fault Handling overview” in the “<strong>Progress</strong> <strong>Sonic</strong><br />

ESB Developer’s Guide” section of the <strong>Sonic</strong> Workbench online help.<br />

114 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Message Mapping<br />

<strong>Sonic</strong> ESB and Workbench features in 8.0.x<br />

This feature provides an option for Service Type developers to create services that see<br />

only a partial view of the ESP Process inflight messages. This gives ESB process<br />

modelers greater runtime flexibility and control over Service steps.<br />

This feature enables an ESB process developer to determine how an ESB process can take<br />

only a subset of the information in the inflight message and pass it to the inbox of the<br />

service (and take the service outbox XQMessage and merge it with the inflight process<br />

message):<br />

You can enable message mapping for existing service types and for custom Java service<br />

types. When you define a message mapping rule, you can also define namespaces, if<br />

needed, enabling you to specify XML prefixes in XPath expressions. This functionality is<br />

documented under “Message mapping” in the “<strong>Progress</strong> <strong>Sonic</strong> ESB Developer’s Guide”<br />

section of the <strong>Sonic</strong> Workbench online help.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 115


Chapter 3: What was new and changed in prior Version 8 releases<br />

Fault Handling with <strong>Sonic</strong> Interceptors<br />

<strong>Sonic</strong> interceptors can augment <strong>Sonic</strong>'s built-in fault handling. <strong>Sonic</strong> interceptors are an<br />

extension of Spring interceptors. Although <strong>Sonic</strong> interceptors can do more than just<br />

augment fault handling, they were added in 8.0 specifically for this purpose:<br />

This functionality is documented under “Using <strong>Sonic</strong> interceptors for fault handling” in<br />

the “<strong>Progress</strong> <strong>Sonic</strong> ESB Developer’s Guide” section of the <strong>Sonic</strong> Workbench online help.<br />

116 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Service Configuration Editor<br />

<strong>Sonic</strong> ESB and Workbench features in 8.0.x<br />

The Service Configuration Editor enables you to edit service configurations directly in the<br />

<strong>Sonic</strong> Workbench, without using the <strong>Sonic</strong> Management Console (SMC):<br />

This editor is documented under “Service Configuration editor” in the “<strong>Progress</strong> <strong>Sonic</strong><br />

Editors” section of the <strong>Sonic</strong> Workbench online help.<br />

<strong>Sonic</strong> Connect Projects<br />

A <strong>Sonic</strong> Connect development project allows you to work with Web services and<br />

RESTful Web services. <strong>Sonic</strong> Connect projects are documented under “<strong>Sonic</strong> Connect<br />

Integrated editor” in the “<strong>Progress</strong> <strong>Sonic</strong> Editors” section of the <strong>Sonic</strong> Workbench online<br />

help.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 117


Chapter 3: What was new and changed in prior Version 8 releases<br />

<strong>Sonic</strong> Connect Editor<br />

The <strong>Sonic</strong> Connect editor provides the tools needed to create and modify <strong>Sonic</strong> Connect<br />

services. Some of the Web service tools are derived from the Eclipse WTP project.<br />

This editor is documented under “<strong>Sonic</strong> Connect Integrated editor” in the “<strong>Progress</strong> <strong>Sonic</strong><br />

Editors” section of the <strong>Sonic</strong> Workbench online help.<br />

118 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Dispatch Service Step<br />

<strong>Sonic</strong> ESB and Workbench features in 8.0.x<br />

A Dispatch Service step enables you to invoke an ESB address without passing along<br />

process context information. For example, you might invoke an ESB endpoint that<br />

resolves to a JMS topic or queue.<br />

This step is documented under the “<strong>Progress</strong> <strong>Sonic</strong> Editors” section and the “<strong>Progress</strong><br />

<strong>Sonic</strong> ESB Developer’s Guide” section of the <strong>Sonic</strong> Workbench online help.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 119


Chapter 3: What was new and changed in prior Version 8 releases<br />

Flow Termination Steps<br />

Several new flow termination steps replace the End step. Many of these steps are used<br />

with Fault Handling:<br />

Step<br />

Type Description<br />

Exit Explicitly exits the process.<br />

Fault Generates a fault and addresses a<br />

message to the fault destination.<br />

Reject Rejects a message and addresses a<br />

message to the RME.<br />

Rethrow Rethrows the underlying RME or fault,<br />

causing further escalation of the fault.<br />

Resubmit Resubmits the message to the ESB<br />

process or process step that originated<br />

the RME or fault message.<br />

Terminate Terminates the execution of the<br />

process.<br />

Step Graphic in ESB Process<br />

Editor<br />

These steps are documented under “ESB Process Editor” in the “<strong>Progress</strong> <strong>Sonic</strong> Editors”<br />

section and under “Fault Handling overview” in the “<strong>Progress</strong> <strong>Sonic</strong> ESB Developer’s<br />

Guide” section of the <strong>Sonic</strong> Workbench online help.<br />

120 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong> Deployment Manager features in 8.0.x<br />

<strong>Sonic</strong> Deployment Manager features in 8.0.x<br />

The following feature was introduced in <strong>Sonic</strong> Deployment Manager in 8.0 SP 1:<br />

● “Message Compression Tuning Elements”<br />

Message Compression Tuning Elements<br />

The Tuning.xsd supports message compression in ConnectionFactoryParameters<br />

parameter:<br />

● Enable Compression — When selected, requires connections that use this connection<br />

factory to perform message compression before sending messages, and requires the<br />

broker to deliver compressed messages to connections that use this connection<br />

factory. The setting could be overridden by the client.<br />

● Custom Compression Factory — Specifies the custom class that defines message<br />

compression and decompression.<br />

● See “Message Compression” on page 77 for more information about this new feature.<br />

Revised Documentation in 8.0 SP 1<br />

SDM documentation has been enhanced to provide better information as follows:<br />

● “Enhanced Remote Resources Chapter” on page 128<br />

● “Document How to Create an SDM Audit File” on page 128<br />

● “Video Demonstration of Centralized Install and Provisioning” on page 128<br />

Enhanced Remote Resources Chapter<br />

Examples of copy operations let you demonstrate copying resources to the local Domain<br />

Manager machine and to a remote machine<br />

The local resources section is recast to position it properly in the new SDM paradigm.<br />

Document How to Create an SDM Audit File<br />

The SDM in 8.0 introduced the ability to create a record of actions taken on hosts. The<br />

new commandline parameter, audit_file, was not documented at that time. The feature<br />

is now described in the <strong>Progress</strong> <strong>Sonic</strong> Deployment Manager User’s Guide as follows:<br />

● audit_file — When specified with an arbitrary file name, logs the actions taken on<br />

hosts. Reuse of the log in subsequent runs appends new entries to an existing audit<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 121


Chapter 3: What was new and changed in prior Version 8 releases<br />

file. For example, specifying audit_file=c:\basic.audit and then running a<br />

cleanDomain command and, later, an <strong>update</strong>Domain command for the Basic sample<br />

would produce an audit file that looks like this:<br />

date 17:18:04,Administrator,localhost,[default],/Containers/ctData2,SUCCESS,setupContainer,<br />

date 17:18:04,Administrator,localhost,[default],/Containers/ctManagement,SUCCESS,setupContainer,<br />

date 17:23:09,Administrator,localhost,[default],/Containers/ctData2,SUCCESS,setupContainer,<br />

date 17:23:09,Administrator,localhost,[default],/Containers/ctManagement,SUCCESS,setupContainer,<br />

Configuring Domains Using Centralized Installation<br />

As the SDM runs on only the Domain Manager system, any tasks needed on remote<br />

systems require tools that can perform tasks on the remote system.<br />

<strong>Sonic</strong> 8.0 provides two functions that enable the SDM to perform tasks on remote<br />

systems:<br />

● <strong>Sonic</strong> Container Launcher. — Establishes <strong>Sonic</strong> on distributed systems, and enables<br />

setting up containers with HostManager objects. See the “Using <strong>Progress</strong> <strong>Sonic</strong><br />

Launcher Installer” and “Setting Up Containers” chapters of the <strong>Progress</strong> <strong>Sonic</strong><br />

Installation and Upgrade Guide for more information.<br />

● Host Manager framework component — Provides a mechanism for accessing remote<br />

hosts from the Management Console and the SDM. See the “Configuring Containers”<br />

and “Managing Containers and Collections” chapters of the <strong>Progress</strong> <strong>Sonic</strong>MQ<br />

Configuration and Management Guide for more information.<br />

When the <strong>Sonic</strong> Container Launcher runs on a remote system, it does not require any<br />

license keys. It establishes the <strong>Sonic</strong> home, the JVM, and the container working<br />

directories. See the “Using <strong>Progress</strong> <strong>Sonic</strong> Launcher Installer” and “Setting Up<br />

Containers” chapters of the <strong>Progress</strong> <strong>Sonic</strong> Installation and Upgrade Guide for more<br />

information.<br />

Topology file for Environments and Logical Hosts<br />

<strong>Sonic</strong>’s centralized installation functionality lets you define the physical machines in a<br />

deployment infrastructure so that the definitions of logical machines can be mapped to the<br />

physical machines of a specified environments.<br />

The fundamental goal of the <strong>Sonic</strong> Deployment Manager is to define interactions of<br />

components that are independent of specific IT assets. This chapter shows how machines<br />

are mapped to a model in the model’s Topology.xml file.<br />

122 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong> Deployment Manager features in 8.0.x<br />

The concept of logical hosts in a model allows a configuration or runtime component to<br />

be bound to zero, one or more logical hosts. The mapping to physical hosts was implicit<br />

in Version 7 because SDM had to run in each participating machine, declaring its list of<br />

hosts to be mapped (or defaulting to all) to that installation/<br />

Version 8 introduces Topology.xml, the file in a model that structures the environment and<br />

host information, and then leverages the <strong>Sonic</strong> centralized installation function to bind the<br />

configurations, components, and resources of a logical host to a physical host managed in<br />

the domain. Thus, the SDM runs on the same host as the domain it manages.<br />

Remote Resources<br />

<strong>Sonic</strong>’s SDM has always supported local resources—you could define copy tasks in a<br />

model’s Resource.xml file, and removals or deletions in a model’s Deletes.xml file’s<br />

Resources segment. Those were local resources because the nature of the SDM was that<br />

it had to run to each machine that was a host.<br />

Version 8 introduces semantics for remote resources that deprecate the use of local<br />

resources to provide the ability of the SDM running on the Domain Manager system to<br />

perform resource functions on remote systems that copy files to remote systems, delete<br />

files on remote systems, and execute tasks on remote systems.<br />

● Copy operations can copy a file from an SDM accessible folder to an SDM defined<br />

remote machine, and copy a folder and all its content from an SDM accessible folder<br />

to an SDM defined remote machine.<br />

● Delete operations can delete a file from an SDM defined remote machine, and delete<br />

an folder from an SDM defined remote machine<br />

● Exec operations are a set of actions that copy a specified Ant build file to a remote<br />

target, and then run the build. The deployment of Ant to the remote machine is<br />

handled by the execute operation.<br />

New Schema Elements and Samples of Features<br />

SDM 8.0 provides several schema enhancements that enable modelling new features—<br />

message grouping, config-time setting of metrics/alerts, and IPV6—and existing <strong>Sonic</strong><br />

functions previously not supported in the SDM—management permissions, backup<br />

containers, container collections, and JMS Administered Objects in the Domain<br />

Manager’s JNDI store.<br />

The following sections describe these features and patterns from those that provide<br />

sample models.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 123


Chapter 3: What was new and changed in prior Version 8 releases<br />

Management Permissions<br />

The SDM can set the complex of permission hierarchies. When retained strictly at the<br />

SDM model on the Domain Manager, setting and revising permissions is greatly<br />

simplified and more easily reviewed than item-by-item maintenance in the management<br />

console. The following is an excerpt from the Permission sample’s Model.xml file:<br />

<br />

<br />

<br />

central<br />

<br />

<br />

/<br />

Administrators<br />

Fullcontrol<br />

<br />

<br />

/<br />

Monitors<br />

monitorsRole<br />

<br />

<br />

<br />

ESBContainer and Backup Management Containers<br />

ESB containers can take advantage of the ability of management containers to provide a<br />

fault-tolerance mechanism. The sample model ESBContainers demonstrates their<br />

configuration for ESB, but the techniques apply to Event Monitors and Activation<br />

Daemons as well. The following is an excerpt from the Model.xml of the sample:<br />

<br />

****<br />

<br />

<br />

<br />

esbContainer1<br />

ctESB<br />

ctESBBAK<br />

<br />

true<br />

<br />

The excerpt uses the Clone tag, which indicates that the same ESB container should be<br />

used in the backup container. The primary container will be created first, as a regular (non<br />

fault tolerant) container. During subsequent processing, the creation of the backup<br />

container will result in a modification of the primary container's configuration so that the<br />

primary becomes a fault tolerant container.<br />

124 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong> Deployment Manager features in 8.0.x<br />

Tuning parameters can be added to a fault-tolerant management container, as shown:<br />

<br />

true<br />

...<br />

<br />

10<br />

10<br />

false<br />

<br />

<br />

An Actional interceptor on an ESB container can be enabled through SDM tuning<br />

parameters, as shown:<br />

<br />

<br />

true<br />

true<br />

<br />

<br />

A sample model is provided.<br />

Configuration Time Metrics and Alerts<br />

SDM model can configure metrics and alerts for containers and their components. This<br />

supports the new feature in <strong>Sonic</strong>MQ that provides for definition of persistent settings for<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 125


Chapter 3: What was new and changed in prior Version 8 releases<br />

metrics and alerts at configuration-time as well as overrides at runtime. The parameters<br />

might create a pattern like this in a model’s Tuning.xml file:<br />

<br />

<br />

brData1<br />

<br />

<br />

<br />

queue.messages.Count<br />

<br />

<br />

100<br />

<br />

<br />

<br />

<br />

<br />

queue.messages.Count.SampleQ1<br />

<br />

<br />

50<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

esbContainer1<br />

<br />

<br />

<br />

esb.service.messages.AverageProcessingTime<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

broker.connections.Count<br />

queue.messages.Count<br />

queue.messages.MaxDepth<br />

<br />

60<br />

<br />

<br />

Message Grouping<br />

The SDM provides elements for the queue settings that establish Message Grouping<br />

behaviors on a queue. Message grouping, introduced in <strong>Sonic</strong> 8.0, involves the message<br />

126 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong> Deployment Manager features in 8.0.x<br />

producers setting a property on messages that a broker will manage by allocating<br />

messages to consumers on virtual exclusive queues based on the property value. The<br />

message grouping settings are all in a model’s Tuning file, as shown is this excerpt from<br />

the MessageGrouping sample model:<br />

<br />

Alternate Group Name2<br />

true<br />

3000<br />

22<br />

7200000<br />

<br />

JNDI Support<br />

SDM supports creation JMS Administered Objects, allowing you to create queues, topic,<br />

multitopics, connections, and XQ connections in the Domain Manager’s JNDI store.<br />

A sample model is provided. An excerpt of that model follows:<br />

<br />

<br />

SampleCF<br />

ConnectionFactoryParams<br />

jms/sonic<br />

mqClient<br />

mqClient<br />

<br />

tcp://localhost:2506,tcp://localhost:2507<br />

<br />

<br />

<br />

Container Collections<br />

The ContainerCollection element defines container collections in the form:<br />

<br />

myCollection<br />

<br />

ctESb1<br />

ctBrData1<br />

ctBrData2<br />

<br />

<br />

A sample model is provided.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 127


Chapter 3: What was new and changed in prior Version 8 releases<br />

Enhanced Remote Resources Chapter<br />

Examples of copy operations let you demonstrate copying resources to the local Domain<br />

Manager machine and to a remote machine<br />

The local resources section is recast to position it properly in the new SDM paradigm.<br />

Document How to Create an SDM Audit File<br />

The SDM in 8.0 introduced the ability to create a record of actions taken on hosts. The<br />

new commandline parameter, audit_file, was not documented at that time. The feature<br />

is now described in the <strong>Progress</strong> <strong>Sonic</strong> Deployment Manager User’s Guide as follows:<br />

● audit_file — When specified with an arbitrary file name, logs the actions taken on<br />

hosts. Reuse of the log in subsequent runs appends new entries to an existing audit<br />

file. For example, specifying audit_file=c:\basic.audit and then running a<br />

cleanDomain command and, later, an <strong>update</strong>Domain command for the Basic sample<br />

would produce an audit file that looks like this:<br />

date 17:18:04,Administrator,localhost,[default],/Containers/ctData2,SUCCESS,setupContainer,<br />

date 17:18:04,Administrator,localhost,[default],/Containers/ctManagement,SUCCESS,setupContainer,<br />

date 17:23:09,Administrator,localhost,[default],/Containers/ctData2,SUCCESS,setupContainer,<br />

date 17:23:09,Administrator,localhost,[default],/Containers/ctManagement,SUCCESS,setupContainer,<br />

Video Demonstration of Centralized Install and Provisioning<br />

This set of video presentations, How SDM Models Configure Remote Machines for<br />

Provisioning, detail how an installed Domain Manager and three remote Launcher<br />

installations are provisioned through the <strong>Sonic</strong> Deployment Manager’s<br />

HotHotMessagingCluster model to establish replicated brokers on two of the machines<br />

128 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Chapter 4 What was new and changed in 7.5 and 7.6<br />

releases<br />

This chapter describes new and enhanced functionality in the <strong>Progress</strong> <strong>Sonic</strong> products in<br />

the following sections:<br />

● “<strong>Sonic</strong>MQ and Managememt Framework features in Version 7”<br />

● “<strong>Sonic</strong> ESB and Workbench features in Version 7”<br />

This chapter describes <strong>Sonic</strong> functionality in the latest Version 7 releases that apply since<br />

the oldest supported release, 7.5. If your installations are not at the last Version 7 release,<br />

7.6 SP 2, review “What was new and changed in 7.5 and 7.6 releases” on page 129 to see<br />

the changes in that were implemented in newer Version 7 releases.<br />

The required upgrade procedures for <strong>Sonic</strong> installations to advance from Version 7<br />

directly to <strong>Sonic</strong> <strong>8.5</strong> are detailed in “Upgrading from Version 7 to <strong>Sonic</strong> <strong>8.5</strong>” on page 95.<br />

Note While there were changes in installers and the <strong>Sonic</strong> Deployment Manager in Version 7<br />

releases, those changes are not relevant when transitioning to <strong>Sonic</strong> <strong>8.5</strong>. See Chapter 4,<br />

“Upgrading from Version 7 to <strong>Sonic</strong> <strong>8.5</strong>” for more information.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 129


Chapter 4: What was new and changed in 7.5 and 7.6 releases<br />

<strong>Sonic</strong>MQ and Managememt Framework features in<br />

Version 7<br />

The features added and changed for <strong>Sonic</strong>MQ and the Managhement Framework in<br />

supported Version 7 releases are categorixed by release:<br />

● “New and Revised <strong>Sonic</strong>MQ Features in 7.6” on page 130<br />

● “New <strong>Sonic</strong>MQ Feature in 7.5.2” on page 132<br />

New and Revised <strong>Sonic</strong>MQ Features in 7.6<br />

The following features were new in <strong>Sonic</strong>MQ 7.6:<br />

● Actional integration — <strong>Progress</strong> Actional instrumentation is now available to<br />

<strong>Sonic</strong>MQ brokers. This enables tracking the flow of a message from a publishing<br />

client through one or more brokers and ultimately to the subscribing client in a<br />

deployment. Features on a broker’s new Monitoring tab enable the instrumentation.<br />

This feature requires <strong>Progress</strong> Actional software products to provide visibility,<br />

control, and enforcement of deployed assets.<br />

See the new “Configure Broker Monitoring Properties” section of the “Configuring<br />

<strong>Sonic</strong>MQ Brokers” chapter of the <strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and<br />

Management Guide for more information.<br />

● Improved producer throughput — Message producer throughput performance for<br />

non-transacted sessions can be improved significantly by setting asynchronous<br />

delivery mode on the producer’s connection. A new<br />

NON_PERSISTENT_REPLICATED_ASYNC delivery mode has been introduced.<br />

NON_PERSISTENT_ASYNC and NON_PERSISTENT_SYNC delivery modes are deprecated in<br />

favor of the ConnectionFactory level settings. However, if used by existing<br />

applications they are supported and behave as expected.<br />

See the “Asynchronous Message Delivery” section of the “<strong>Sonic</strong>MQ Connections”<br />

chapter of the <strong>Progress</strong> <strong>Sonic</strong>MQ Application Programming Guide for details.<br />

● Container Logging Enhancements<br />

■ Remote Viewing of a Log — A snapshot of a running container’s log can be<br />

accessed by a remote administrator through the SMC. The file can be searched<br />

and saved on the administrator’s system.<br />

■ Central log — A container can be configured to send its essential log entries to<br />

the Agent Manager’s system where the entry is appended to the central log. The<br />

entire domain can be forced to send entries to the central log.<br />

130 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong>MQ and Managememt Framework features in Version 7<br />

■ Archiving Logs at Thresholds — The local container log and the central both<br />

provide thresholds for archiving the current log and clearing the current log.<br />

See the revised “Container Logging” section in the “Managing Containers and<br />

Collections” chapter of the <strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and Management<br />

Guide for more information.<br />

● Routing node can be set and enforced at cluster level — In order to ensure that all<br />

broker members of a cluster are set to the same routing node name, the cluster’s node<br />

name is set on the cluster, and overrides the one set on each individual member broker.<br />

● Setting JMSXUserID — Previously, the option to have a security-enabled broker add<br />

the user name to each message in the header property JMSXUserID was an advanced<br />

broker property. It is now a checkbox on the General tab of a broker and its entry as<br />

an advanced property is invalid. Upgrade procedures will transfer an existing<br />

advanced property set to true to selection of the checkbox.<br />

● Limiting connection sessions and temporary queues — Two new advanced broker<br />

properties, CONNECTION_TUNING_PARAMETERS.MAX_TEMPORARY_QUEUES_PER_SESSION and<br />

CONNECTION_TUNING_PARAMETERS.MAX_SESSIONS_PER_CONNECTION, have been<br />

introduced.<br />

● DS Replication Connection Timeout — A JVM system property lets you tune how<br />

long Directory Service instances wait for the replication peer before continuing with<br />

the startup sequence standalone.<br />

See the note in the “Configuring Replication Connections for Directory Service<br />

Peers” section of the “Configuring Framework Components” chapter of the <strong>Progress</strong><br />

<strong>Sonic</strong>MQ Configuration and Management Guide for more information.<br />

● JCA Adapter for WebLogic — The <strong>Sonic</strong> Resource Adapter enables a WebLogic<br />

application server to integrate with <strong>Sonic</strong>MQ. The <strong>Sonic</strong> Resource Adapter conforms<br />

to the J2EE Connector Architecture Version 1.5 Specification and works with<br />

WebLogic Application Server 9.2.<br />

● Memory Sizing Spreadsheets — Documentation includes sizing worksheets to help<br />

you estimate memory required for a broker and its destinations (queue and topic).<br />

Changes and improvements in this release might require actions to adjust existing<br />

configurations and applications.The following features changed for <strong>Sonic</strong>MQ V7.6:<br />

● Container Logging Changes — Where earlier <strong>Sonic</strong> versions specified the explicit<br />

path to the log file, the archiving mechanism introduced in 7.6 requires you to define<br />

a log folder which will store the current log and its archives. The process is automatic<br />

on upgrade, renaming the existing domain_name.container_name.log file to<br />

domain_name.container_name.log.old, creating a folder named<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 131


Chapter 4: What was new and changed in 7.5 and 7.6 releases<br />

domain_name.container_name.log that contains a file named<br />

domain_name.container_name.log.<br />

● Windows Services No Longer Requires -Xrs— A container launched as a Windows<br />

Service now uses native code to ignore user logoff events so the Java -Xrs option<br />

should no longer be specified, thereby allowing the JVM to receive Ctrl-Break<br />

signals to initiate thread dumps.<br />

● Changes to Some Logger Metric Names — Two metrics names were modified to<br />

improve consistent naming across the products. The changed metrics names are:<br />

■ logger.rate.metrics is now logger.metrics.LoggedPerMinute<br />

■ logger.rate.notifications is now logger.notifications.LoggedPerMinute<br />

● JNDI SPI — Some usages such as application servers might only accept standard<br />

environment properties. In those circumstances, you can add <strong>Sonic</strong>-specific<br />

properties as parameters of the PROVIDER_URL, as shown:<br />

Code Sample 2. Using <strong>Sonic</strong> JNDI SPI with URL Parameters<br />

Hashtable env = new Hashtable();<br />

env.put(Context.INITIAL_CONTEXT_FACTORY,<br />

"com.sonicsw.jndi.mfcontext.MFContextFactory");<br />

env.put(Context.PROVIDER_URL,<br />

“tcp://localhost:2506?domain=Domain1&idleTimeout=60000");<br />

env.put(Context.SECURITY_PRINCIPAL, "Administrator");<br />

env.put(Context.SECURITY_CREDENTIALS, "Administrator");<br />

Context ctx = new InitialContext(env);<br />

..<br />

Queue queue = (Queue)ctx.lookup(“queues/Q1”);<br />

..<br />

New <strong>Sonic</strong>MQ Feature in 7.5.2<br />

Subscriber Visibility Through the Runtime Management API<br />

<strong>Sonic</strong>MQ broker monitoring provides a new feature in the Runtime Management API that<br />

provides information about message backlogs of running nondurable subscriber<br />

applications.<br />

This enhancement was introduced to assist large deployments with identification of slow<br />

non-durable subscribers causing flow control issues. The feature gives additional<br />

visibility into resource usage of subscribers; specifically, identification of which<br />

subscribers are consuming the most broker memory and data store resources.<br />

See the <strong>Progress</strong> <strong>Sonic</strong>MQ Administrative Programming Guide chapter “Using the<br />

Runtime API for the <strong>Sonic</strong> Management Environment” for more information.<br />

132 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong> ESB and Workbench features in Version 7<br />

<strong>Sonic</strong> ESB and Workbench features in Version 7<br />

<strong>Progress</strong> <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench included the following enhancements in 7.6.2:<br />

● “Payload capture on the first part of a multipart message” on page 134<br />

● “Enhanced Documentation: ESB binding when creating WSDL” on page 134<br />

<strong>Progress</strong> <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench included the following enhancements in 7.6.1:<br />

● “Support for Actional Server Trust Zones Introduced” on page 135<br />

● “ESB Service Type Requires a Properties File” on page 135<br />

● “Setting an ExceptionListener on an ESB Container JMS Connection” on page 135<br />

● “Registering and Unregistering Transient Endpoints as Entry Endpoints” on page 135<br />

<strong>Progress</strong> <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench included the following enhancements in 7.6:<br />

● “Scenario Improvements” on page 136<br />

● “Run/Debug Improvements” on page 136<br />

● “ESB Process Editor” on page 137<br />

● “ESBWS Editor” on page 146<br />

● “Custom Java Service Type Editor” on page 147<br />

● “<strong>Progress</strong> <strong>Sonic</strong> BPEL Server Enhancements” on page 147<br />

● “Containers View” on page 148<br />

● “Refactoring” on page 148<br />

● “Message Sender View and Message Listener View” on page 149<br />

● “Added two tutorials; Dropped Supply Chain sample” on page 149<br />

● “Enhancements to the File Handling Services” on page 150<br />

● “Enhanced the Split and Join services” on page 151<br />

● “DB Navigator” on page 152<br />

● “ESB Configuration API,” and “Miscellaneous” on page 152<br />

The <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench included the following enhancements in 7.5.1:<br />

● “Web Service Invocation Editor” on page 153<br />

● “ESB Process Editor” on page 154<br />

● “Enhanced Scenarios” on page 155<br />

● “Enhanced Container Management” on page 155<br />

● “Java Service Type Editor” on page 156<br />

● “Deploy Directory and XAR Upload” on page 156<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 133


Chapter 4: What was new and changed in 7.5 and 7.6 releases<br />

● “Enhanced XPath Helper” on page 156<br />

● “Other Enhancements” on page 156<br />

<strong>Progress</strong> <strong>Sonic</strong> ESB and <strong>Sonic</strong> Workbench included the following features in 7.5:<br />

● “<strong>Progress</strong> <strong>Sonic</strong> BPEL Server”<br />

● “Advanced Web Services Interoperability”<br />

● “Enhancements in <strong>Sonic</strong> Workbench”<br />

● “Performance Improvements”<br />

● “Leverages <strong>Progress</strong> DataXtend Semantic Integrator”<br />

● “Integrates <strong>Progress</strong> Actional for SOA Operations”<br />

Payload capture on the first part of a multipart message<br />

SNC00070773 — <strong>Sonic</strong> ESB supports payload capture for the first part of the message<br />

and that too if the Content type is text/xml or application/xml.<br />

A new feature in the <strong>Sonic</strong> ESB Actional interceptor is support for payload capture for the<br />

first part of a multipart message with user defined MIME types. The restriction still holds<br />

that the first part should contain a string or a JMS TextMessage.<br />

To add custom MIME types, they are added to the Global configuration in the Directory<br />

Service so that they apply to all ESB containers in the domain. In the ESBAdmin tool, use<br />

the following command:<br />

set global PayloadCaptureMimeTypes "text/plain,application/custom-text"<br />

and replace the placeholder values in the last argument with a comma-separated list of<br />

MIME types that you want to include for payload capture.<br />

To reset the configuration (that is, to remove all custom MIME types), use the following<br />

ESBAdmin command:<br />

set global PayloadCaptureMimeTypes " "<br />

Enhanced Documentation: ESB binding when creating WSDL<br />

SNC00070475 — Information on ESB binding when creating WSDL. In Workbench<br />

online help, the Create WSDL task was not clear about ESB binding. The following note<br />

has been added to the online help:<br />

If you are creating a WSDL for an ESB process, either by clicking the<br />

To generate the WSDL for this Interface link on the ESB Process editor's Interface page,<br />

or by wrapping the ESB process as a Web service, you must choose a Binding Type (SOAP<br />

or ESB). If you choose ESB as the Binding Type, the interface of the ESB process (as shown<br />

134 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong> ESB and Workbench features in Version 7<br />

on the Interface page) must conform to ESB binding rules: that is, each Parameter in the<br />

interface must map one-to-one to a message part, and the name of each Parameter must<br />

match the name of its corresponding message part.<br />

Support for Actional Server Trust Zones Introduced<br />

You can use <strong>Progress</strong> <strong>Sonic</strong> ESB 8.0 with <strong>Progress</strong> Actional to implement trust zones,<br />

which provide an additional layer of security in a SOA environment. In <strong>Sonic</strong> ESB, trust<br />

zones are only supported for SOAP messages over HTTP.<br />

See Chapter 12 of the <strong>Progress</strong> <strong>Sonic</strong> ESB Configuration and Management Guide, “Using<br />

Actional Trust Zones in <strong>Sonic</strong> ESB,” for more information.<br />

ESB Service Type Requires a Properties File<br />

In prior releases, an ESB service type without a corresponding properties file could be<br />

configured in the ESB Configured Objects section of the <strong>Sonic</strong> Management Console.<br />

As of V7.6, the service type properties file is required for the service initialization<br />

parameters to be shown properly in the SMC. Service type properties files are stored in a<br />

domain’s Directory Service <strong>Sonic</strong> file system on the path:<br />

/System/<strong>Sonic</strong>ESB/properties/servicetypes<br />

Setting an ExceptionListener on an ESB Container JMS<br />

Connection<br />

<strong>Sonic</strong> ESB supports setExceptionListener on the ESB container JMSConnection wrapper.<br />

This method, setExceptionListener, supports the chaining in of custom JMS<br />

ExceptionListeners.<br />

Registering and Unregistering Transient Endpoints as Entry<br />

Endpoints<br />

ESB services can perform registration and un-registration of both configured and<br />

transient endpoints as entry endpoints.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 135


Chapter 4: What was new and changed in 7.5 and 7.6 releases<br />

Scenario Improvements<br />

In the <strong>Progress</strong> <strong>Sonic</strong> Workbench, several editors now provide a Scenarios page, from<br />

which you can create, modify, and run scenarios. You can drag and drop input files onto<br />

the Scenarios page from the Navigator view.<br />

Scenarios can be integrated with the Eclipse launch configuration, supporting hot-key<br />

combinations like those provided by the Java Development tools, and providing the ability<br />

to re-launch the last configuration launched:<br />

Run/Debug Improvements<br />

ESB processes are validated under the following conditions:<br />

● When the option to build automatically is enabled, the ESB process is validated when<br />

the process is saved.<br />

● When you run a scenario for an ESB process, the ESB Process editor validates the<br />

process.<br />

The validation determines whether there are any problems in the services and<br />

subprocesses used by the process steps, and checks for common errors that might lead to<br />

unexpected results when you run or debug an ESB process. This functionality is<br />

documented under “Validating an ESB process” in the “ESB Editors” section of the <strong>Sonic</strong><br />

Workbench online help.<br />

136 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


ESB Process Editor<br />

Support for New Services<br />

<strong>Sonic</strong> ESB and Workbench features in Version 7<br />

● SOAP Unwrap Step: The ESB Process editor provides support for generic unwrap<br />

SOAP steps. When implementing a web service, you can now use an unwrap SOAP<br />

step in an ESB process (which implicitly unwraps the SOAP) instead of an ESBWS<br />

file (which explicitly unwraps the SOAP. An implicit unwrap SOAP step is embedded<br />

inline in the ESB process and requires no additional artifacts.<br />

● New terminate step and branch to terminate the current execution of the process at<br />

that step (fanout/decision/main branch). See the “Terminating a branch or an ESB<br />

process” topic in the “ESB Process editor” help under “ESB editors” in the “<strong>Progress</strong><br />

<strong>Sonic</strong> Editors” section of the <strong>Sonic</strong> Workbench online help.<br />

● The Prototype Service (dev.Prototype) enables you to create and quickly run an ESB<br />

process before creating all the actual service steps. You can improve the simulation<br />

by dragging .xml or .esbmsg files onto the process, which add a Prototype service and<br />

this service will output the same document when running. When a generic service<br />

step is added to an ESB process, it is a Prototype service by default. Similar to the<br />

dev.Prototype service, the dev.nullProcess prototype ESB process is provided for<br />

quick simulations. This process is assigned by default when adding a Process step.<br />

See the “Using a Prototype service” and “Using a prototype process” topics in the<br />

“ESB Process editor” help under “ESB editors” in the “<strong>Progress</strong> <strong>Sonic</strong> Editors”<br />

section of the <strong>Sonic</strong> Workbench online help.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 137


Chapter 4: What was new and changed in 7.5 and 7.6 releases<br />

● <strong>Progress</strong> <strong>Sonic</strong> JMS service for WebSphere MQ: This service includes the WMQ<br />

JMS Queue Listener On-ramp and WMQ JMS Queue Sender Off-ramp services.<br />

These services provide connectivity between <strong>Sonic</strong> ESB and WebSphere MQ JMS<br />

messaging. This integration enables developers to exchange data between <strong>Sonic</strong> ESB<br />

and WebSphere MQ. The service is documented under “JMS service for WebSphere<br />

MQ” in the “<strong>Progress</strong> <strong>Sonic</strong> ESB Services” section of <strong>Sonic</strong> Workbench online help.<br />

Palette re-organization<br />

● New Palette options to show icons only and use large icons.<br />

● A new group, Favorites, where you can manually add or remove commonly used<br />

services and process templates.<br />

● Capability to hide/show the Recent services group or Favorites group.<br />

See the “Customizing the Palette” and “Customizing the Favorites section of the Palette”<br />

topics in the “ESB Process editor” help under “ESB editors” in the “<strong>Progress</strong> <strong>Sonic</strong><br />

Editors” section of the <strong>Sonic</strong> Workbench online help.<br />

Process Templates<br />

New templates based on best practices include:<br />

Name Used in Enterprise Integration Pattern<br />

Split XML on XPath Sample.B2RT Splitter<br />

Operation Router Sample.RIA Content-Based Router!<br />

Drop File in Directory Sample.B2RT Event Driven Consumer<br />

VETO Sample.B2RT n/a<br />

See the “Using process templates” topic in the “ESB Process editor” help under “ESB<br />

editors” in the “<strong>Progress</strong> <strong>Sonic</strong> Editors” section of the <strong>Sonic</strong> Workbench online help.<br />

Template Parameterization<br />

While creating a template, you can mark resources in the ESB process template file as<br />

template parameters. These parameterized resources are copied to the workspace from the<br />

specified path while dropping the template. See the “Parameterizing resources for process<br />

templates” topic in the “ESB Process editor” help under “ESB editors” in the “<strong>Progress</strong><br />

<strong>Sonic</strong> Editors” section of the <strong>Sonic</strong> Workbench online help.<br />

138 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


XCBR/CBR Improvements<br />

<strong>Sonic</strong> ESB and Workbench features in Version 7<br />

● Instead of an empty branch, a new branch is created with a prototype service step. See<br />

the “Adding a branch to an ESB process” topic in the “ESB Process editor” help under<br />

“ESB editors” in the “<strong>Progress</strong> <strong>Sonic</strong> Editors” section of the <strong>Sonic</strong> Workbench online<br />

help.<br />

● Improved validation of XCBR and CBR steps to detect incorrect step names that do<br />

not match the step-based rules. See the “Validating an ESB process” topic in the “ESB<br />

Process editor” help under “ESB editors” in the “<strong>Progress</strong> <strong>Sonic</strong> Editors” section of<br />

the <strong>Sonic</strong> Workbench online help.<br />

● Improved top-down creation of XCBR/CBR routing rules file from a decision step in<br />

the ESB Process editor. The new file is automatically populated with the correct stepbased<br />

routing rules with default value for the rule conditions. See the “Adding XPath<br />

routing rules” topic in the “XPath Routing Rules editor” help and the “Adding,<br />

editing, and deleting routing rule conditions” topic in the “Routing Rules editor” help.<br />

These topics are under “ESB editors” in the “<strong>Progress</strong> <strong>Sonic</strong> Editors” section of the<br />

<strong>Sonic</strong> Workbench online help.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 139


Chapter 4: What was new and changed in 7.5 and 7.6 releases<br />

Split and Join Parallel service<br />

Split and Join Parallel service steps in the ESB Process editor show the called addresses<br />

to provide navigation to the subprocess via hypertext links. See the “Navigating to called<br />

addresses” topic in the “ESB Process editor” help under “ESB editors” in the “<strong>Progress</strong><br />

<strong>Sonic</strong> Editors” section of the <strong>Sonic</strong> Workbench online help.<br />

Easy Navigation from the ESB Process Editor Process Page<br />

Improved navigation from steps in the ESB Process editor page to any primary file type<br />

via context menu options. See the “Navigating to files from ESB process steps” topic in<br />

the “ESB Process editor” help under “ESB editors” in the “<strong>Progress</strong> <strong>Sonic</strong> Editors”<br />

section of the <strong>Sonic</strong> Workbench online help.<br />

140 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong> ESB and Workbench features in Version 7<br />

WSDL Drag and Drop: Inline Web Service Invocation<br />

You can add a web service invocation step to an ESB process by dragging a WSDL file<br />

from the Navigator view and dropping it onto the ESB process canvas. In response, the<br />

ESB Process editor creates an inline invocation script. An inline invocation script is<br />

simpler to use than an external Web Service Invocation file (.esbws) and requires no<br />

external artifacts. An inline script, however, is not reusable. Also, you must use an inline<br />

script to invoke services, whereas you can use a Web Service Invocation file to invoke and<br />

to implement services.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 141


Chapter 4: What was new and changed in 7.5 and 7.6 releases<br />

Variable Substitution Support<br />

In the Service page of the ESB Process editor, you can use variable substitution for certain<br />

parameters, such as the WSDL Port Address parameter for web services and the<br />

Configuration Document parameter for File Services. The substitution can be for a<br />

properties file, a message header, or a deployment parameter:<br />

Validation<br />

Validating an ESB process with a nested subprocess shows any problems with the<br />

subprocess.<br />

142 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Miscellaneous<br />

The context menu is enhanced for easy access to actions:<br />

<strong>Sonic</strong> ESB and Workbench features in Version 7<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 143


Chapter 4: What was new and changed in 7.5 and 7.6 releases<br />

The enhanced ESB process creation wizard allows you to create an ESB process with<br />

different options. See the “Specifying options to create an ESB process” topic in the “ESB<br />

Process editor” help under “ESB editors” in the “<strong>Progress</strong> <strong>Sonic</strong> Editors” section of the<br />

<strong>Sonic</strong> Workbench online help.<br />

The layout in the Service editor pages (except for the Invocation services) has been<br />

changed to utilize the available space.<br />

The ESB Process editor provides a clearer message when failing to connect to the domain<br />

manager:<br />

144 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong> ESB and Workbench features in Version 7<br />

The representation of the end of a decision is now consistent with the representation in the<br />

BPEL editor:<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 145


Chapter 4: What was new and changed in 7.5 and 7.6 releases<br />

ESBWS Editor<br />

The Mappings page layout has been changed to utilize available space.<br />

146 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Custom Java Service Type Editor<br />

<strong>Sonic</strong> ESB and Workbench features in Version 7<br />

● Java Service Type Template Enhancements — XQServiceEx has become the<br />

standard interface for implementations of services due to its enhanced functionality.<br />

The tooling now by default generates a Java Service Type as an implementation of<br />

XQServiceEx.<br />

● ESB Classloading — <strong>Sonic</strong> ESB provides a flexible, built-in classloading scheme.<br />

This scheme enables you to exercise fine-grained control over Java classloading, if<br />

required by your application. This scheme also enables you to specify the classes<br />

required by a service type without reconfiguring its host ESB container or containers.<br />

With this scheme, you can be certain your ESB containers, ESB services, and ESB<br />

processes load the correct classes at runtime.<br />

● Service Lifecycle Control — Your ESB service code can explicitly control its own<br />

lifecycle and, to a limited extent, the lifecycle of its host ESB container.<br />

● Dynamic Endpoints — Your ESB service code can create and manipulate one or more<br />

dynamic endpoints — transient endpoints that, unlike configured endpoints, reside<br />

only in memory. Your service can use dynamic endpoints to provide secondary input<br />

and output channels, without changing the service configuration. After creating<br />

dynamic endpoints, your service code can use them just like pre-configured<br />

endpoints.<br />

● API Access to JMS Connections and Sessions — An ESB service can access its<br />

underlying JMS connection and session objects. By doing so, the service can both<br />

produce and consume messages at the JMS level instead of at the ESB level.<br />

<strong>Progress</strong> <strong>Sonic</strong> BPEL Server Enhancements<br />

● Consistent process look and feel with Itinerary Editor — The BPEL editor now<br />

provides consistency with the ESB Process editor for the start and end figures in a<br />

sequence, the color for connecting lines, and the appearance of decision figures.<br />

● BPEL Editor Usability Enhancements — Drag and drop support for ESBP file to add<br />

an invoke step.<br />

● Deployment Descriptor Editor Enhancements<br />

■ My Endpoints tab<br />

■ PartnerLink Property metadata<br />

● Other Enhancements<br />

■ Error marker is shown on the BPEL file icon in the navigator when it has errors.<br />

■ Creating ESBMSG from BPEL Scenario panel populates required headers.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 147


Chapter 4: What was new and changed in 7.5 and 7.6 releases<br />

Containers View<br />

Refactoring<br />

● Keep the containers alive when Domain Manager started outside even after shutting<br />

down the Workbench, so that the Workbench gets connected faster when started next<br />

time.<br />

● Container view supports management of multiple ESB Containers deployed in a<br />

single MF Container.<br />

● Enable/Disable Actional Visualization for ESB Container.<br />

● Container view shows state (online, offline and error state) of individual services and<br />

processes and shows last error details in property dialog.<br />

● ESB Service/process is provided with the operations Start and Stop.<br />

● The ESB Process editor and Navigator view support searching for references of an<br />

ESB process used as a subprocess, an ESB address destination, or a routing<br />

destination and searching for references of ESB process step. They also support<br />

searching for content-based (CBR) and XPath content-based (XCBR) routing rules<br />

files used in an ESB process. This functionality is documented under “Searching for<br />

references of ESB processes and routing rules files” in the “<strong>Progress</strong> <strong>Sonic</strong><br />

Workbench” section of the <strong>Sonic</strong> Workbench online help.<br />

● The ESB Process editor supports refactoring step name changes in routing rules files<br />

and ESB processes. Refactoring finds references of the changed steps in the current<br />

routing rules or ESB process files, and provides you the option of updating them with<br />

the new names. This functionality is documented under “Refactoring step name<br />

changes in routing rules files” and “Refactoring step name changes in ESB processes”<br />

in the “<strong>Progress</strong> <strong>Sonic</strong> Workbench” section of the <strong>Sonic</strong> Workbench online help.<br />

● The ESB Process editor and Navigator view support refactoring when ESB processes<br />

and routing rules files are moved. When you move an ESB process or routing rules<br />

file to a new location, you have the option of updating references of the changed<br />

location in ESB processes and routing rules. This functionality is documented under<br />

“Refactoring when ESB processes and CBR or XCBR files are moved” in the<br />

“<strong>Progress</strong> <strong>Sonic</strong> Workbench” section of the <strong>Sonic</strong> Workbench online help.<br />

148 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong> ESB and Workbench features in Version 7<br />

● The ESB Process editor and Navigator view support refactoring when ESB processes<br />

and routing rules files are renamed. When you rename an ESB process or routing<br />

rules file, you have the option of updating references of the changed files in ESB<br />

processes and routing rules. This functionality is documented under “Refactoring<br />

when ESB processes and CBR or XCBR files are renamed” in the “<strong>Progress</strong> <strong>Sonic</strong><br />

Workbench” section of the <strong>Sonic</strong> Workbench online help.<br />

Message Sender View and Message Listener View<br />

Enhancements to the Message Sender and Listener views include:<br />

● "Resend Last Message" action to send the last sent message on a specific sender.<br />

● "Send Default Message" option to send the associated default message on a JMS<br />

Destination.<br />

● Multi-select in the "Message Listener" view to stop and start multiple listeners.<br />

These views are documented under “Sending and listening for ESB messages” in the<br />

“<strong>Progress</strong> <strong>Sonic</strong> Development and Debugging Tools” section of the <strong>Sonic</strong> Workbench<br />

online help.<br />

Added two tutorials; Dropped Supply Chain sample<br />

Changes and enhancements to the samples and tutorials include:<br />

● The Supply Chain sample was removed.<br />

● The Batch to Real-time tutorial provides step-by-step instructions to develop a sample<br />

application to processes batch purchase orders in real time. You will see how easy it<br />

is to use <strong>Sonic</strong> Workbench to prototype and implement an enterprise SOA<br />

application. This tutorial is documented under “Batch to Real-time tutorial” in the<br />

“<strong>Progress</strong> <strong>Sonic</strong> ESB Samples and Tutorials” section of the <strong>Sonic</strong> Workbench online<br />

help. To watch an online demo of the entire tutorial, open the documentation portal<br />

for the <strong>Progress</strong> <strong>Sonic</strong> ESB <strong>Product</strong> Family (from the Start menu, select Programs ><br />

<strong>Progress</strong> > <strong>Sonic</strong> 7.6 > Documentation) and click on the link to the multimedia<br />

demonstration for the Batch to Real-time tutorial.<br />

● The Remote Information Access tutorial walks you through the process of building<br />

an ESB process using phased implementation techniques. The tutorial provides stepby-step<br />

instructions to build ESB processes to retrieve and assemble data from<br />

multiple data sources into messages, redefine the granularity and packaging of the<br />

messages (transformation), and route the messages (and copies) to locations<br />

determined from the message´s data (content-based routing).<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 149


Chapter 4: What was new and changed in 7.5 and 7.6 releases<br />

For step-by-step instructions to develop the ESB processes yourself, see “Remote<br />

Information Access tutorial” in the “<strong>Progress</strong> <strong>Sonic</strong> ESB Samples and Tutorials”<br />

section of the <strong>Sonic</strong> Workbench online help. To watch an online demo of the entire<br />

tutorial, open the documentation portal for the <strong>Progress</strong> <strong>Sonic</strong> ESB <strong>Product</strong> Family<br />

(from the Start menu, select Programs > <strong>Progress</strong> > <strong>Sonic</strong> 7.6 > Documentation) and<br />

click on the link to the multimedia demonstration for the Remote Information Access<br />

tutorial.<br />

Enhancements to the File Handling Services<br />

The enhancements to the File handling services include:<br />

● A new runtime parameter, ConfigurationRequestDocument, is available to specify the<br />

configuration document. It is enabled for parameter substitution. The runtime<br />

parameter, ConfigurationRequestDocumentRuntime, is deprecated, hidden, and not<br />

available at runtime. ESB processes prior to V7.6 will continue to work, but the path<br />

of the .pickup or .drop file is not visible in Workbench. Verify this by opening the<br />

.esbp file with the text editor.<br />

● In addition to the existing cleanup actions, delete and none, the File Pickup service<br />

now provides move and rename.<br />

● The File Drop service now supports writing files in other encoding beyond the<br />

platform default, for example, UTF-8. The .drop file has a new tag.<br />

● A new runtime and initialization parameter, Content ID for Config Document<br />

specifies the Content ID of the input message part in a multipart message that contains<br />

the configuration document. If a numeric value is specified and no matching Content<br />

ID exists, the service queries the part with that index number for the content to use as<br />

the configuration document.<br />

● A new runtime and initialization parameter, Default Message Part, specifies either the<br />

index of the part or the Content ID of the part to designate where the File Pickup<br />

service places the picked up file content or where the File Drop service obtains the<br />

file content. The default value is 0, providing backwards compatibility.<br />

● There is a new initialization parameter, Retain Message. For the:<br />

■ File Pickup service: If the value is True, a new message part is created having the<br />

content of the picked up file. This part is appended to the message from the inbox.<br />

The default value is false.<br />

■ File Drop service: If the value is True and the 'EXIT' is provided as a status<br />

destination in the configuration document, the status message is appended to the<br />

inbox message. The default value is False.<br />

150 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong> ESB and Workbench features in Version 7<br />

● The File handling services provide new metrics.<br />

The File handling services are documented in the “<strong>Progress</strong> <strong>Sonic</strong> Services” section of the<br />

<strong>Sonic</strong> Workbench online help.<br />

Important: See the <strong>Sonic</strong> ESB release notes for information on upgrading the file<br />

handling services.<br />

Enhanced the Split and Join services<br />

The enhancements to the Split and Join services include:<br />

● New runtime and initialization parameters for the Split and Join Parallel service<br />

include:<br />

■ Merge Branch Results to specify whether to merge the branch results, either No<br />

Merge or Append Child Nodes.<br />

■ XPath Expression to specify the parent node for the merge results.<br />

■ Namespaces to specify the namespaces used by the XPath expression.<br />

■ Merge Part to specify the Content ID or index of the part to merge the results into.<br />

● New and revised runtime and initialization parameters for the Split and Join ForEach<br />

service include:<br />

■ Split Part was enhanced to specify the Content ID or index of the part of an input<br />

multipart message to split. The value is used first as a content ID for the part to<br />

be split. If the input message has no part with a matching content ID, the<br />

parameter value is parsed as an integer and used to retrieve a message part with<br />

that index. If no value is specified, part 0 of the input message is split.<br />

■ Merge Branch Results determines whether branch results are automatically<br />

merged, either No Merge, Replace Parts, or Replace Nodes.<br />

● New Split and Join service samples demonstrate the new merge options.<br />

The Split and Join services are documented in the “<strong>Progress</strong> <strong>Sonic</strong> Services” section of<br />

the <strong>Sonic</strong> Workbench online help. The samples are documented in the “<strong>Progress</strong> <strong>Sonic</strong><br />

Samples and Tutorials” section.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 151


Chapter 4: What was new and changed in 7.5 and 7.6 releases<br />

DB Navigator<br />

DB Navigator connects to any SQL-compliant database through a JDBC driver. This<br />

release includes the following enhancements:<br />

● When working with an OpenEdge database, you can use schema wizards to create,<br />

modify, and delete tables, columns, indexes, and other database objects. You can also<br />

view and create triggers and sequences.<br />

● When working with a Microsoft SQL Server database or an Oracle database, you can<br />

view extended schema elements such as triggers, functions, and stored procedures.<br />

● In addition to providing Type IV JDBC drivers for <strong>Progress</strong> OpenEdge, Microsoft<br />

SQL Server, Oracle, IBM DB2, Sybase, and Informix databases, DB Navigator also<br />

provides a connection using a JDBC ODBC bridge.<br />

● You will notice a change in the location and structure of the DB Navigator's<br />

Preferences, as well as a renaming of the perspective.<br />

ESB Configuration API<br />

The ESB Configuration API enables programmatic control over ESB configuration<br />

objects. With this API, you can retrieve, create, modify, and delete ESB endpoints, ESB<br />

services, ESB containers, and so on. You can also use this API to perform a variety of<br />

other tasks, such as creating activation daemons.<br />

Miscellaneous<br />

● Orchestration Server support was removed from <strong>Sonic</strong> Workbench, as well as the<br />

Orchestration editor, Process Set editor, and the Orchestration Developer's Guide.<br />

● The File > Import > Others > <strong>Sonic</strong> Project created with previous versions of<br />

Workbench option has been removed. It had been provided to assist with upgrading<br />

Stylus Studio projects.<br />

● Right-clicking on a WSDL or XSD in the Navigator view provides the Create New<br />

XML option to quickly launch the New XML wizard with the chosen file for selecting<br />

types/elements.<br />

152 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Web Service Invocation Editor<br />

<strong>Sonic</strong> ESB and Workbench features in Version 7<br />

The Web Service Invocation editor has the following enhancements:<br />

● The Web Service Invocation editor supports a history of WSDLs used across ESBWS<br />

files. The Recent option is available in all places where URLS can be chosen from<br />

<strong>Sonic</strong> FS, as shown:<br />

● ESBWS files can be created from WSDL files by right clicking on port types and<br />

operations.<br />

● The Web Service Invocation editor supports validation of the WSDL file for the<br />

chosen service, port, binding, port type, and operation. Errors are shown in the<br />

Problems view. Navigating opens the WSDL file that is in error in the WSDL editor<br />

and the line with the error is highlighted.<br />

● The Web Service Invocation editor supports multiple faults when the ESBWS type is<br />

set to Fault.<br />

● The Web Service Invocation editor does not recreate the mappings if the changes in<br />

the WSDL do not affect it.<br />

● The Parameter Mappings table has several changes that make it easier to map<br />

parameters, including a new option to Discard input parameters.<br />

The Web Service Invocation editor is documented under “ESB editors” in the “<strong>Sonic</strong><br />

Editors” section of the <strong>Sonic</strong> Workbench online help.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 153


Chapter 4: What was new and changed in 7.5 and 7.6 releases<br />

ESB Process Editor<br />

The ESB Process editor has the following enhancements:<br />

● The ESB editor supports automatic uploading upon saving. This behavior is<br />

configured in the Preferences page.<br />

● The ESB Process editor supports refactoring a sequence of steps as a subprocess and<br />

ensures that both processes are valid.<br />

● The ESB Process editor provides a wizard for creating a WSDL. The wizard allows<br />

you to configure what is generated and to generate an ESB binding for the WSDL.<br />

● The ESB Process editor provides a wizard for wrapping an existing process with<br />

another process that is exposed as a web service. The wizard also creates all the<br />

required ESBWS files.<br />

● The ESB Process editor supports enabling and disabling breakpoints.<br />

● The ESB Process editor supports creating a subprocess from the process where it is<br />

being used, without having to create it ahead of time. Use the New option to create the<br />

subprocess, as shown:<br />

● Dropping a step on an ESB process in the Process page makes the service name<br />

editable.<br />

● The drop target on an ESB process in the Process page is wider for better drag and<br />

drop support.<br />

The ESB Process editor is documented under “ESB editors” in the “<strong>Sonic</strong> Editors” section<br />

of the <strong>Sonic</strong> Workbench online help.<br />

154 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Enhanced Scenarios<br />

Scenarios have the following enhancements:<br />

<strong>Sonic</strong> ESB and Workbench features in Version 7<br />

● Scenarios support validation and can catch common mistakes such as empty input,<br />

file/literal confusion, and out-of-sync with the interface errors.<br />

● The Edit Scenario dialog box provides tool tips that display the file contents when you<br />

position the cursor over a file URL.<br />

● The Output view displays rejected messages in readable format, and provides links to<br />

the process and service steps at which the error occurred, as shown:<br />

● The Output view has an option to close all the output tabs.er<br />

● Multi-byte character streams are processed correctly because UTF-16 and other<br />

encodings are fully supported.<br />

Scenarios are documented under “Running and Debugging <strong>Sonic</strong> Applications” in the<br />

“<strong>Sonic</strong> Development and Debugging Tools” section of the <strong>Sonic</strong> Workbench online help.<br />

Enhanced Container Management<br />

The Containers view has the following enhancements:<br />

● The Containers view provides improved logging and tailing of container log files and<br />

integrates with the Eclipse Console view, providing additional features.<br />

● Container properties are viewable and editable in a Properties dialog box.<br />

● You can create and configure ESB containers in <strong>Sonic</strong> Workbench.<br />

● You can add ESB processes with endpoints and service to containers in <strong>Sonic</strong><br />

Workbench.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 155


Chapter 4: What was new and changed in 7.5 and 7.6 releases<br />

The Containers view is documented under “Container Management” in the “<strong>Sonic</strong><br />

Workbench” section of the <strong>Sonic</strong> Workbench online help.<br />

Java Service Type Editor<br />

Java Service development supports an improved XQServiceEx template based on common<br />

usage. It is the basis of the code generated when a new Java Service is created. The Java<br />

Service Type editor is documented under “ESB editors” in the “<strong>Sonic</strong> Editors” section of<br />

the <strong>Sonic</strong> Workbench online help.<br />

Deploy Directory and XAR Upload<br />

<strong>Sonic</strong> projects have a new deploy directory that can hold XAR files and exploded XAR<br />

files as directories. You can also extract and upload them. This functionality is<br />

documented under “<strong>Sonic</strong> archives (XAR files)” in the “<strong>Sonic</strong> Workbench” section of the<br />

<strong>Sonic</strong> Workbench online help.<br />

Enhanced XPath Helper<br />

XPath Helper has the following enhancements:<br />

● XPath Helper has the ability to change input documents from within the dialog box.<br />

● XPath Helper can remember the document that was used to populate it in the specific<br />

context. For example, for a specific XCBR file, the next time the XPath Helper is<br />

opened, it opens with the same XML file.<br />

● XPath Helper handles namespaces correctly and has other improvements.<br />

XPath Helper is documented under “Generating XPath Expressions” in the “<strong>Sonic</strong><br />

Development and Debugging Tools” section of the <strong>Sonic</strong> Workbench online help.<br />

Other Enhancements<br />

Other enhancements include the following:<br />

● Context-sensitive help is integrated into <strong>Sonic</strong> Workbench. Use F1 to invoke this help.<br />

● The Java Service Type editor and the BPEL Service editor have an option to specify<br />

the container in which to upload a service. The container is not restricted to<br />

dev_ESBTest for Java Services and dev_BPEL for BPEL Services.<br />

● A formatting preference creates all namespace declarations on new lines, making<br />

them easier to read.<br />

156 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Sonic</strong> ESB and Workbench features in Version 7<br />

● The XML Schema editor and the WSDL editor support improved semantic navigation<br />

using F3 and Ctrl+Click for various items such as refs, binding, and port types that<br />

cross files, and follow the correct namespace, imports, and visibility rules.<br />

● The XML editor’s Tree page provides a dialog box for typing text and automatically<br />

encodes special characters such as &, >, and


Chapter 4: What was new and changed in 7.5 and 7.6 releases<br />

BPEL Editors in <strong>Progress</strong> <strong>Sonic</strong> Workbench<br />

<strong>Sonic</strong> ESB 7.5 provides a richly-featured drag-and-drop BPEL editor and distributed<br />

debugging support for <strong>Sonic</strong> BPEL Server at runtime. <strong>Sonic</strong> Workbench introduces three<br />

new WS-BPEL 2.0 editors:<br />

● BPEL Editor — Create, edit, and validate BPEL processes (.bpel files) and configure<br />

deployment descriptors (.bpdd files).<br />

● BPEL Service Editor — Configure a BPEL service (.bpsvc file), which specifies one<br />

or more BPEL process definitions to deploy as a single BPEL service. Use a BPEL<br />

service to run and debug scenarios against a BPEL service deployed in a test<br />

container.<br />

● BPEL Invocation Editor — Define a BPEL invocation (.esbpel file) that specifies a<br />

WSDL operation provided by a BPEL process. When you add a BPEL service step to<br />

an ESB process, the BPEL service step references a BPEL service instance and its<br />

BPEL invocation.<br />

Each editor is documented in the “<strong>Sonic</strong> Editors” section of the <strong>Sonic</strong> Workbench online<br />

help.<br />

BPEL Configuration and Management Support<br />

You can configure and manage BPEL services using the <strong>Sonic</strong> Management Console<br />

(SMC). Use the SMC management features to search for BPEL process instances and<br />

view audit trails and events for each process instance. See the “Configuring BPEL<br />

Services” and “Managing BPEL Services” chapters in the <strong>Progress</strong> <strong>Sonic</strong> ESB<br />

Configuration and Management Guide (PDF).<br />

You can also perform management tasks programatically using the BPEL management<br />

API. This API is SOAP/WSDL-based and accessible via HTTP. See the <strong>Progress</strong> <strong>Sonic</strong><br />

BPEL Server: Management API Guide (PDF).<br />

Advanced Web Services Interoperability<br />

<strong>Sonic</strong> ESB 7.5 was tested for advanced web services interoperability with Microsoft's<br />

new Windows Communication Foundation for WS-SecurityPolicy, WS-<br />

ReliableMessaging and WS-Addressing. See “Working with web services” in the “<strong>Sonic</strong><br />

ESB Developer’s Guide” section of the <strong>Sonic</strong> Workbench online help. Also see the<br />

<strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and Management Guide (PDF) and the <strong>Progress</strong><br />

<strong>Sonic</strong>MQ Deployment Guide (PDF) for background information about configuring and<br />

deploying web services.<br />

158 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Enhancements in <strong>Sonic</strong> Workbench<br />

<strong>Sonic</strong> ESB and Workbench features in Version 7<br />

In addition to the three new BPEL Server editors, <strong>Sonic</strong> Workbench has the following<br />

enhancements for V7.5:<br />

● WSDL editor — Provides Policy Wizards for WS-Security 2002, 2005, and WS-<br />

ReliableMessaging. The WSDL editor supports a greater range of WSDL files, and<br />

enables you to validate WSDL for WS-I compliance, in addition to performing basic<br />

validation. The Overview page is now directly editable. The WSDL editor also<br />

supports BPEL extensions (partner link type extensions, property extensions, and<br />

property alias extensions). See the “WSDL editor” topics in the “<strong>Sonic</strong> Editors”<br />

section of the <strong>Sonic</strong> Workbench online help.<br />

● ESB Process editor — Provides drag and drop support to replace implementation of<br />

ESB process steps. Dropping an artifact on a step redefines the step based on the<br />

dropped artifact. See the “ESB Process editor” topics in the “<strong>Sonic</strong> Editors” section<br />

of the <strong>Sonic</strong> Workbench online help.<br />

● ESB Message Editor — Supports JMS and ESB headers, including JMSReplyTo,<br />

when composing messages. See the “ESB Message editor” topics in the “<strong>Sonic</strong><br />

Editors” section of the <strong>Sonic</strong> Workbench online help.<br />

● Message Sender and Message Listener views — Enable specification of a<br />

JMSReplyTo on messages and dragging and dropping messages. See the “Sending<br />

and listening for messages” topics in the “<strong>Sonic</strong> Testing and Debugging Tools”<br />

section of the <strong>Sonic</strong> Workbench online help.<br />

● Creating ESB endpoints — <strong>Sonic</strong> Workbench now supports creating basic ESB<br />

endpoints. See the “Creating ESB endpoints” topic in the “ESB Endpoints” section<br />

of the <strong>Progress</strong> <strong>Sonic</strong> ESB Developer’s Guide in the <strong>Sonic</strong> Workbench online help.<br />

Performance Improvements<br />

<strong>Sonic</strong> ESB 7.5 greatly improves ESB Process throughput and latency through internal<br />

optimization and caching, most notably on web services callouts. Additionally, the<br />

embedded HTTP Server in <strong>Sonic</strong>MQ is redesigned to enhance performance with<br />

comparable performance improvements in HTTP tunneling, a key component of <strong>Sonic</strong><br />

ESB’s capability to cross firewalls. See the “Configuring Acceptors” chapter of the<br />

<strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and Management Guide (PDF).<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 159


Chapter 4: What was new and changed in 7.5 and 7.6 releases<br />

Leverages <strong>Progress</strong> DataXtend Semantic Integrator<br />

<strong>Sonic</strong> ESB 7.5 dramatically simplifies common data model lifecycle management,<br />

transformation, and validation by leveraging the power of <strong>Progress</strong> DataXtend Semantic<br />

Integrator. This new capability tackles the problem of point-to-point transformations,<br />

making it much easier to integrate data and evolve a SOA with diverse connected systems.<br />

For information about <strong>Progress</strong> DataXtend SI, see <strong>Progress</strong> Software’s DataXtend web<br />

site at www.progress.com/dataxtend.<br />

Integrates <strong>Progress</strong> Actional for SOA Operations<br />

<strong>Sonic</strong> ESB 7.5 extends the integration with Actional for SOA operations to include<br />

instrumentation of <strong>Sonic</strong> BPEL Server. Actional gathers operational metrics, raises alerts<br />

on SLA failure, delivers real-time dependency tracking, and performs root cause analysis<br />

across the ESB and into the IT infrastructure it connects. For information about <strong>Progress</strong><br />

Actional, see <strong>Progress</strong> Software’s Actional web site at www.progress.com/actional.<br />

160 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


Chapter 5 Learning More About the <strong>Progress</strong> <strong>Sonic</strong><br />

<strong>Product</strong>s<br />

This chapter describes where to find more information on the <strong>Progress</strong> Software products,<br />

as detailed in the following sections:<br />

● “<strong>Progress</strong> <strong>Sonic</strong> Documentation”<br />

● “<strong>Progress</strong> <strong>Sonic</strong> Infocenter”<br />

● “<strong>Progress</strong> <strong>Sonic</strong> Education and Training”<br />

● “<strong>Progress</strong> Software Developers Network (PSDN)”<br />

● “<strong>Progress</strong> <strong>Sonic</strong> Technical Support”<br />

● “<strong>Progress</strong> <strong>Sonic</strong> Evaluation Support”<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 161


Chapter 5: Learning More About the <strong>Progress</strong> <strong>Sonic</strong> <strong>Product</strong>s<br />

<strong>Progress</strong> <strong>Sonic</strong> Documentation<br />

<strong>Sonic</strong> installations always have a welcome page that provides links to <strong>Sonic</strong><br />

documentation, release notes, communities, and support. See the release’s <strong>Product</strong><br />

<strong>Update</strong> <strong>Bulletin</strong> book to see what’s new and what’s changed since prior releases.<br />

The <strong>Sonic</strong> <strong>8.5</strong> documentation set—accessed at PSDN or at its remote site—includes the<br />

following books and API references.<br />

<strong>Sonic</strong>MQ Documentation<br />

<strong>Sonic</strong>MQ installations provide the following documentation:<br />

● <strong>Progress</strong> <strong>Sonic</strong> Installation and Upgrade Guide — The essential guide for installing,<br />

upgrading, and updating <strong>Sonic</strong>MQ on distributed systems, using the graphical,<br />

console or silent installers, and scripted responses. Describes on-site tasks such as<br />

defining additional components that use the resources of an installation, defining a<br />

backup broker, creating activation daemons and encrypting local files. Also describes<br />

the use of characters and provides local troubleshooting tips.<br />

● Getting Started with <strong>Progress</strong> <strong>Sonic</strong>MQ — Provides an introduction to the scope and<br />

concepts of <strong>Sonic</strong>MQ messaging. Describes the features and benefits of <strong>Sonic</strong>MQ<br />

messaging in terms of its adherence to the JavaSoft JMS specification and its rich<br />

extensions. Provides step by step instructions for sample programs that demonstrate<br />

JMS behaviors and usage scenarios. Concludes with a glossary of terms used<br />

throughout the <strong>Sonic</strong>MQ documentation set.<br />

● <strong>Progress</strong> <strong>Sonic</strong>MQ Configuration and Management Guide — Describes the<br />

configuration toolset for objects in a domain. Also shows how to use the JNDI store<br />

for administered objects, how integration with Progerss Actional is implemented, and<br />

how to use JSR 160 compliant consoles. Shows how to manage and monitor deployed<br />

components including metrics and notifications.<br />

● <strong>Progress</strong> <strong>Sonic</strong>MQ Deployment Guide — Describes how to architect components in<br />

broker clusters, the <strong>Sonic</strong> Continuous Availability Architecture and Dynamic<br />

Routing Architecture®. Shows how to use the protocols and security options that<br />

make your deployment a resilient, efficient, controlled structure. Covers all the facets<br />

of HTTP Direct, a <strong>Sonic</strong> technique that enables <strong>Sonic</strong>MQ brokers to send and receive<br />

pure HTTP messages.<br />

● <strong>Progress</strong> <strong>Sonic</strong>MQ Administrative Programming Guide — Shows how to create<br />

applications that perform management, configuration, runtime and authentication<br />

functions.<br />

162 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Progress</strong> <strong>Sonic</strong> Documentation<br />

● <strong>Progress</strong> <strong>Sonic</strong>MQ Application Programming Guide— Takes you through the Java<br />

sample applications to describe the design patterns they offer for your applications.<br />

Details each facet of the client functionality: connections, sessions, transactions,<br />

producers and consumers, destinations, messaging models, message types and<br />

message elements. Complete information is included on hierarchical namespaces,<br />

recoverable file channels and distributed transactions.<br />

● <strong>Progress</strong> <strong>Sonic</strong>MQ Performance Tuning Guide — Illustrates the buffers and caches<br />

that control message flow and capacities to help you understand how combinations of<br />

parameters can improve both throughput and service levels. Shows how to tune TCP<br />

under Windows and Linux for the <strong>Sonic</strong> Continuous Availability Architecture.<br />

● <strong>Sonic</strong>MQ API Reference — Online JavaDoc compilation of the exposed <strong>Sonic</strong>MQ<br />

Java messaging client APIs.<br />

● Management Application API Reference — Online JavaDoc compilation of the<br />

exposed <strong>Sonic</strong>MQ management configuration and runtime APIs.<br />

● Metrics and Notifications API Reference — Online JavaDoc of the exposed <strong>Sonic</strong>MQ<br />

management monitoring APIs.<br />

● <strong>Progress</strong> <strong>Sonic</strong> Event Monitor User’s Guide — Packaged with the <strong>Sonic</strong>MQ installer,<br />

this guide describes the <strong>Progress</strong> <strong>Sonic</strong> logging framework to track, record or redirect<br />

metrics and notifications that monitor and manage applications.<br />

Other <strong>Sonic</strong>MQ Documentation<br />

The <strong>Progress</strong> <strong>Sonic</strong> download site provides access to additional client, and JCA adapter<br />

products and documentation:<br />

● <strong>Progress</strong> <strong>Sonic</strong>MQ .NET Client Guide — Packaged with the <strong>Sonic</strong>MQ .NET client<br />

download, this guide takes you through the C# sample applications and describes the<br />

design patterns they offer for your applications. Details each facet of the client<br />

functionality: connections, sessions, transactions, producers and consumers,<br />

destinations, messaging models, message types and message elements. Includes<br />

complete information on hierarchical namespaces and distributed transactions. The<br />

package also includes online API reference for the <strong>Sonic</strong> .NET client libraries, and<br />

samples for C++ and VB.NET.<br />

● <strong>Progress</strong> <strong>Sonic</strong>MQ C Client Guide — Packaged with the <strong>Sonic</strong>MQ C/C++/COM<br />

client download, this guide presents the C sample applications and shows how to<br />

enhance the samples, focusing on connections, sessions, messages, producers and<br />

consumers in both the point-to-point and publish/subscribe messaging models.<br />

Provides tips and techniques for C programmers and gives detailed information about<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 163


Chapter 5: Learning More About the <strong>Progress</strong> <strong>Sonic</strong> <strong>Product</strong>s<br />

releasing objects and about using XA resources for distributed transactions. The<br />

package also includes online API reference for the <strong>Sonic</strong>MQ C client.<br />

● <strong>Progress</strong> <strong>Sonic</strong>MQ C++ Client Guide — Packaged with the <strong>Sonic</strong>MQ C/C++/COM<br />

client download, this guide presents the C++ sample applications and shows how to<br />

enhance the samples, focusing on connections, sessions, messages, producers and<br />

consumers in both the point-to-point and publish/subscribe messaging models.<br />

Provides tips and techniques for C++ programmers and gives detailed information<br />

about using XA resources for distributed transactions. The package also includes<br />

online API reference for the <strong>Sonic</strong>MQ C++ client.<br />

● <strong>Progress</strong> <strong>Sonic</strong>MQ COM Client Guide — Packaged with the <strong>Sonic</strong>MQ C/C++/COM<br />

client download for Windows, this guide presents the COM sample applications<br />

under ASP, and Visual C++. Shows how to enhance the samples, focusing on<br />

connections, sessions, messages, producers and consumers in both the point-to-point<br />

and publish/subscribe messaging models. Provides tips and techniques for COM<br />

programmers. The package also includes online API reference for the <strong>Sonic</strong>MQ<br />

COM client.<br />

● <strong>Progress</strong> <strong>Sonic</strong>MQ <strong>8.5</strong> Resource Adapter for JCA User’s Guide for WebSphere —<br />

Packaged with this JCA adapter in a separate download, this guide describes the<br />

<strong>Sonic</strong> Resource Adapter for JCA and using it with a WebSphere application server.<br />

● <strong>Progress</strong> <strong>Sonic</strong>MQ <strong>8.5</strong> Resource Adapter for JCA User’s Guide for Weblogic —<br />

Packaged with this JCA adapter in a separate download, this guide describes the<br />

<strong>Sonic</strong> Resource Adapter for JCA and using it with a Weblogic application server.<br />

● <strong>Progress</strong> <strong>Sonic</strong>MQ <strong>8.5</strong> Resource Adapter for JCA User’s Guide for JBoss —<br />

Packaged with this JCA adapter in a separate download, this guide describes the<br />

<strong>Sonic</strong> Resource Adapter for JCA and using it with a JBoss application server.<br />

<strong>Sonic</strong> ESB Documentation<br />

The <strong>Sonic</strong> ESB product family provides the following documentation:<br />

● <strong>Progress</strong> <strong>Sonic</strong> Installation and Upgrade Guide — Provides information about<br />

installing, updating, and upgrading <strong>Sonic</strong> ESB components.<br />

● <strong>Progress</strong> <strong>Sonic</strong> Workbench User Guide (<strong>Progress</strong> <strong>Sonic</strong> Workbench Online Help) —<br />

Provides information about developing, testing, and debugging applications on the<br />

<strong>Progress</strong> <strong>Sonic</strong> Workbench. Describes the <strong>Sonic</strong> Workbench, its editors, and tools.<br />

Provides information about how to get started with each component of the <strong>Sonic</strong> ESB<br />

<strong>Product</strong> Family and describes sample applications.<br />

● <strong>Progress</strong> <strong>Sonic</strong> ESB Configuration and Management Guide — Provides information<br />

about configuring and managing components used by the <strong>Sonic</strong> ESB <strong>Product</strong> Family.<br />

164 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>


<strong>Progress</strong> <strong>Sonic</strong> Infocenter<br />

Describes deployment configurations for <strong>Sonic</strong> ESB, <strong>Sonic</strong> Database Service, and<br />

<strong>Sonic</strong> BPEL Server<br />

● <strong>Progress</strong> <strong>Sonic</strong> ESB Deployment Guide — Provides information about moving<br />

development projects into test and production environments. Describes<br />

recommended build procedures, domain mappings, and reporting features.<br />

● <strong>Progress</strong> <strong>Sonic</strong> BPEL Server: Management API Guide — Describes how to use the<br />

management API to programatically access BPEL server functionality.<br />

● <strong>Sonic</strong> ESB API Reference — Online JavaDoc compilation of the <strong>Sonic</strong> ESB APIs.<br />

<strong>Progress</strong> <strong>Sonic</strong> Infocenter<br />

The <strong>Progress</strong> <strong>Sonic</strong> Infocenter provides an Eclipse-independent deployment of the <strong>Sonic</strong><br />

Workbench online help in the <strong>Progress</strong> <strong>Sonic</strong> Workbench User Guide. Just use your<br />

preferred browser to access the Infocenter at:<br />

http://documentation.progress.com/infocenter/sonic/<strong>8.5</strong>.<br />

<strong>Progress</strong> <strong>Sonic</strong> Education and Training<br />

Choose from:<br />

● Instructor-led Training — <strong>Progress</strong> Software offers instructor-led lecture and exercise<br />

style training on-site at your location. Courses are taught by field consultants who<br />

have certified on the courseware, yet also bring practical experience to the classroom.<br />

● Subscription-based eLearning Service — Gives you access to the <strong>Progress</strong> <strong>Sonic</strong><br />

Catalog, which is part of the Enterprise Infrastructure eLearning Library. Each<br />

student has unlimited online access to the <strong>Progress</strong> <strong>Sonic</strong> Catalog as well as the entire<br />

Enterprise Infrastructure library of eLearning titles.<br />

<strong>Progress</strong> Software Developers Network (PSDN)<br />

The <strong>Progress</strong> Software Developers Network, PSDN Online, is the technical community<br />

website for all <strong>Progress</strong> Software products. Browse through current technical<br />

whitepapers, shared code, evaluation versions, demonstrations, video presentations, and<br />

product documentation. PSDN Online is a dynamic, interactive, 24x7 community where<br />

developers contribute to the forums, blogs, ratings, watches, and comments. Access is<br />

free—just go to www.psdn.com and register.<br />

<strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong> 165


Chapter 5: Learning More About the <strong>Progress</strong> <strong>Sonic</strong> <strong>Product</strong>s<br />

<strong>Progress</strong> <strong>Sonic</strong> Technical Support<br />

<strong>Progress</strong> Software’s <strong>Sonic</strong> support staff can provide assistance using the resources on<br />

their Web site at www.progress.com/sonic. There you can access technical support for<br />

licensed <strong>Progress</strong> <strong>Sonic</strong> editions to help resolve technical problems that you encounter<br />

when installing or using <strong>Sonic</strong> products.<br />

The <strong>Progress</strong> <strong>Sonic</strong> support program offerings include:<br />

● Tiered support services<br />

● Support centers located around the world<br />

● Electronic knowledge center for self-service<br />

● Access to our on-line developers network and related Web sites<br />

● Electronic software download capability<br />

When contacting Technical Support, please have the following information available:<br />

● The release version number and serial number of <strong>Sonic</strong>MQ that you are using. This<br />

information is listed on the license addendum. It is also at the top of the <strong>Sonic</strong>MQ<br />

Broker console window and might appear as follows:<br />

<strong>Sonic</strong>MQ Continuous Availability Edition [Serial Number nnnnnnn]<br />

Release nnn Build Number nnn Protocol nnn<br />

● The release version number and serial number of <strong>Sonic</strong> ESB that you are using. This<br />

information is listed on the license addendum. It is also near the top of the console<br />

window for a <strong>Sonic</strong> ESB Container. For example:<br />

<strong>Sonic</strong> ESB Continuous Availability Edition [Serial Number: nnnnnnn]<br />

Release nnn Build Number nnn<br />

● The platform on which you are running <strong>Progress</strong> <strong>Sonic</strong> products, and any other<br />

relevant environment information.<br />

● The Java Virtual Machine (JVM) your installation uses.<br />

● Your name and, if applicable, your company name.<br />

● E-mail address, telephone, and fax numbers for contacting you.<br />

<strong>Progress</strong> <strong>Sonic</strong> Evaluation Support<br />

● United States, Canada & Latin America — +1 781 999 7100 eval@progress.com<br />

● Europe, Middle East & Africa — +44 (0) 1753 217000 info-emea@progress.com<br />

● Asia Pacific — sonic-eval-ap@progress.com<br />

166 <strong>Progress</strong> <strong>Sonic</strong> <strong>Update</strong> <strong>Bulletin</strong> <strong>8.5</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!