Sonic ESB Configuration and Management Guide

Size: px
Start display at page:

Download "Sonic ESB Configuration and Management Guide"

Transcription

1 Sonic ESB Configuration and Management Guide

2

3 Aurea Sonic ESB Configuration and Management Guide 2013 Copyright 2013 Aurea, Inc. All Rights Reserved. These materials and all Aurea Software, Inc. software products are copyrighted and all rights are reserved by Aurea, Inc. This document is proprietary and confidential. No part of this document may be disclosed in any manner to a third party without the prior written consent of Aurea Software, Inc. The information in these materials is subject to change without notice, and Aurea Software, Inc. assumes no responsibility for any errors that may appear therein. Actional, Actional (and design), SOAPscope, SOAPstation, Mindreef, DataXtend, Savvion, Savvion (and design), Savvion BusinessManager, Dynamic Routing Architecture, Sonic, Sonic ESB, Sonic Integration Workbench, Sonic Orchestration Server, SonicMQ, and SonicXQ are registered trademarks of Aurea, Inc., in the U.S. and/or other countries. Actional Agent, Actional Intermediary, Actional Management Server, DataXtend Semantic Integrator, Pantero, Savvion BizLogic, Savvion BizPulse, Savvion BizRules, Savvion BizSolo, Savvion BPM Portal, Savvion BPM Studio, Savvion BusinessExpert, Savvion BusinessManager, Savvion Process Asset Manager, ProcessEdge, Savvion Process Modeler, Sonic Continuous Availability Architecture, Sonic Database Service, and Sonic Workbench are trademarks or service marks of Aurea, Inc., in the U.S. and other countries. Oracle and Java are registered trademarks of Oracle and/or its affiliates. All other marks contained herein are for informational purposes only and may be trademarks of their respective owners. Third Party Acknowledgments: One or more products in the Aurea Sonic 2013 release includes third party components covered by licenses that require that the following documentation notices be provided: Aurea Sonic 2013 incorporates Another Tool for Language Recognition v Such technologies are subject to the following terms and conditions: ANTLR Software License We reserve no legal rights to the ANTLR--it is fully in the public domain. An individual or company may do whatever they wish with source code distributed with ANTLR or the code generated by ANTLR, including the incorporation of ANTLR, or its output, into commercial software. We encourage users to develop software with ANTLR. However, we do ask that credit is given to us for developing ANTLR. By "credit", we mean that if you use ANTLR or incorporate any source code into one of your programs (commercial product, research project, or otherwise) that you acknowledge this fact somewhere in the documentation, research report, etc... If you like ANTLR and have developed a nice tool with the output, please mention that you developed it using ANTLR. In addition, we ask that the headers remain intact in our source code. As long as these guidelines are kept, we expect to continue enhancing this system and expect to make other tools available as they are completed. Aurea Sonic 2013 incorporates Apache Ant-Contrib 1.0B3. Such technology is subject to the following terms and conditions: The Apache Software License, Version Copyright (c) Ant-Contrib project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions 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 the redistribution, if any, must include the following acknowledgement: "This product includes software developed by the Ant-Contrib project ( Alternately, this acknowledgement may appear in the software itself, if and wherever such third-party acknowledgements normally appear. 4. The name Ant-Contrib must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact ant-contrib-developers@lists.sourceforge.net. 5. Products derived from this software may not be called "Ant-Contrib" nor may "Ant-Contrib" appear in their names without prior written permission of the Ant-Contrib project. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ANT-CONTRIB PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (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 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

4 Aurea Sonic2013 incorporates BasicLogin.java, SimpleCallbackHandler.java, SimplePasswordUser.java, SampleLoginModule.java, SamplePrincipal.java from Sun Microsystems, Inc. These technologies are subject to the following terms and conditions: Copyright Sun Microsystems, Inc. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistribution 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. 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," without a warranty of any kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES OR LIABILITIES SUFFERED BY LICENSEE AS A RESULT OF OR RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. You acknowledge that Software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility. Aurea Sonic 2013 incorporates Colt cern.colt* packages v1.0.3 (ca ). Such technology is subject to the following terms and conditions: Packages cern.colt, cern.jet*, cern.clhep - Copyright (c) 1999 CERN - European Organization for Nuclear Research. Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. CERN makes no representations about the suitability of this software for any purpose. It is provided "as is" without expressed or implied warranty. Aurea Sonic 2013 incorporates Crimson v Such technology is subject to the following terms and conditions: The Apache Software License, Version 1.1. Copyright (c) The Apache Software Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions 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 the redistribution, if any, must include the following acknowledgment: "This product includes software developed by the * Apache Software Foundation ( Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear. 4. The names "Xerces" and "Apache Software Foundation" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact apache@apache.org. 5. Products derived from this software may not be called "Apache", nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (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 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================== This software consists of voluntary contributions made by many individuals on behalf of the Apache Software Foundation and was originally based on software copyright (c) 1999, International Business Machines, Inc., For more information on the Apache Software Foundation, please see < Aurea Sonic 2013 incorporates DSTC Xs3P version 1.1 from DSTC Pty Ltd. Aurea will, at Licensee's request, provide

5 copies of the source code for this third party technology, including modifications, if any, made by Aurea. Aurea may charge reasonable shipping and handling charges for such distribution. Licensee may also obtain the source code through by following the instructions set forth therein. - DSTC Public License. The contents of this file are subject to the DSTC Public License Version 1.1 (the 'License') (provided herein); you may not use this file except in compliance with the License. Software distributed under the License is distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is xs3p. The Initial Developer of the Original Code is DSTC. Portions created by DSTC are Copyright (c) 2001, 2002 DSTC Pty Ltd. All Rights Reserved. Aurea Sonic 2013 incorporates Jing and Trang Such technology is subject to the following terms and conditions: Copyright (c) 2002, 2003 Thai Open Source Software Center Ltd. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions 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. Neither the name of the Thai Open Source Software Center Ltd nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (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 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Aurea Sonic 2013 incorporates Model Objects Framework v2.0 from ModelObjects Group. Such technology is subject to the following terms and conditions: The ModelObjects Group Software License, Version Copyright (c) ModelObjects Group. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions 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 the redistribution, if any, must include the following acknowledgement: "This product includes software developed by the ModelObjects Group ( Alternatively, this acknowledgement may appear in the software itself, if and wherever such third-party acknowledgements normally appear. 4. The name "ModelObjects" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact djacobs@modelobjects.com. 5. Products derived from this software may not be called "ModelObjects", nor may ModelObjects" appear in thier name, without prior written permission of the ModelObjects Group. THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MODEL OBJECTS GROUP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (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 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Aurea Sonic 2013 incorporates Mozilla Rhino v1.5r3. The contents of this file are subject to the Netscape Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at and a copy is provided below. Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is Mozilla Communicator client code,

6 released March 31, The Initial Developer of the Original Code is Netscape Communications Corporation. Portions created by Netscape are Copyright (C) Netscape Communications Corporation. All Rights Reserved. Aurea will, at Licensee's request, provide copies of the source code for this third party technology, including modifications, if any, made by Aurea. Aurea may charge reasonable shipping and handling charges for such distribution. Licensee may also obtain the source code through by following the instructions set forth therein. Aurea Sonic 2013 incorporates NET Security Library v1.0. Such technologies are subject to the following terms and conditions: Copyright (c) , The KPD-Team All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Neither the name of the KPD-Team, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (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 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Copyright (c) , The KPD-Team. Aurea Sonic 2013 incorporates OpenSAML Java Distribution v Such technology is subject to the following terms and conditions: The OpenSAML License, Version 1. Copyright (c) University Corporation for Advanced Internet Development, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions 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, if any, must include the following acknowledgment: "This product includes software developed by the University Corporation for Advanced Internet Development Internet2 Project. Alternately, this acknowledgement may appear in the software itself, if and wherever such third-party acknowledgments normally appear. Neither the name of OpenSAML nor the names of its contributors, nor Internet2, nor the University Corporation for Advanced Internet Development, Inc., nor UCAID may be used to endorse or promote products derived from this software without specific prior written permission. For written permission, please contact opensaml@opensaml.org. Products derived from this software may not be called OpenSAML, Internet2, UCAID, or the University Corporation for Advanced Internet Development, nor may OpenSAML appear in their name, without prior written permission of the University Corporation for Advanced Internet Development. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND WITH ALL FAULTS. ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT ARE DISCLAIMED AND THE ENTIRE RISK OF SATISFACTORY QUALITY, PERFORMANCE, ACCURACY, AND EFFORT IS WITH LICENSEE. IN NO EVENT SHALL THE COPYRIGHT OWNER, CONTRIBUTORS OR THE UNIVERSITY CORPORATION FOR ADVANCED INTERNET DEVELOPMENT, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (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 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Aurea Sonic 2013 incorporates OpenSSL toolkit v0.9.8i. Such technologies are subject to the following terms and conditions: LICENSE ISSUES ============== The OpenSSL toolkit stays under a dual license, i.e. both the conditions of the OpenSSL License and the original SSLeay license apply to the toolkit. See below for the actual license texts. Actually both licenses are BSD-style Open Source licenses. In case of any license issues related to OpenSSL please contact opensslcore@openssl.org.

7 OpenSSL License ==================================================================== Copyright (c) The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions 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. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. ( 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact 5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project. 6. Redistributions of any form whatsoever must retain the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit ( THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (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 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ==================================================================== This product includes cryptographic software written by Eric Young (eay@cryptsoft.com). This product includes software written by Tim Hudson (tjh@cryptsoft.com). Original SSLeay License Copyright (C) Eric Young (eay@cryptsoft.com) All rights reserved. This package is an SSL implementation written by Eric Young (eay@cryptsoft.com). The implementation was written so as to conform with Netscapes SSL. This library is free for commercial and non-commercial use as long as the following conditions are aheared to. The following conditions apply to all code found in this distribution, be it the RC4, RSA, lhash, DES, etc., code; not just the SSL code. The SSL documentation included with this distribution is covered by the same copyright terms except that the holder is Tim Hudson (tjh@cryptsoft.com). Copyright remains Eric Young's, and as such any Copyright notices in the code are not to be removed. If this package is used in a product, Eric Young should be given attribution as the author of the parts of the library used. This can be in the form of a textual message at program startup or in documentation (online or textual) provided with the package. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the copyright notice, this list of conditions and the following disclaimer. 2. Redistributions 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. All advertising materials mentioning features or use of this software must display the following acknowledgement: "This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)" The word 'cryptographic' can be left out if the rouines from the library being used are not cryptographic related :-). 4. If you include any Windows specific code (or a derivative thereof) from the apps directory (application code) you must include an acknowledgement: "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS

8 BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (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 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The licence and distribution terms for any publically available version or derivative of this code cannot be changed. i.e. this code cannot simply be copied and put under another distribution licence [including the GNU Public Licence.] Aurea Sonic 2013 incorporates Saxon XSLT and XQuery Processor v from Saxonica Limited ( which is available from SourceForge ( Aurea will, at Licensee's request, provide copies of the source code for this third party technology, including modifications, if any, made by Aurea. Aurea may charge reasonable shipping and handling charges for such distribution. Licensee may also obtain the source code through by following the instructions set forth therein. - Mozilla Public License Version 1.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at and it is provided below. Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. The Original Code of Saxon comprises all those components which are not explicitly attributed to other parties. The Initial Developer of the Original Code is Michael Kay. Until February 2001 Michael Kay was an employee of International Computers Limited (now part of Fujitsu Limited), and original code developed during that time was released under this license by permission from International Computers Limited. From February 2001 until February 2004 Michael Kay was an employee of Software AG, and code developed during that time was released under this license by permission from Software AG, acting as a "Contributor". Subsequent code has been developed by Saxonica Limited, of which Michael Kay is a Director, again acting as a "Contributor". A small number of modules, or enhancements to modules, have been developed by other individuals (either written specially for Saxon, or incorporated into Saxon having initially been released as part of another open source product). Such contributions are acknowledged individually in comments attached to the relevant code modules. All Rights Reserved. Aurea Sonic 2013 incorporates Xalan Java XSLT Parser v2.4.1 from the Apache Foundation. Such technology is subject to the following terms and conditions: The Apache Software License, Version Copyright (c) 1999 The Apache Software Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions 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 the redistribution, if any, must include the following acknowledgment: "This product includes software developed by the Apache Software Foundation ( Alternately, this acknowledgment may appear in the software itself, if and wherever such thirdparty acknowledgments normally appear. 4. The names "Xalan" and "Apache Software Foundation" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact apache@apache.org. 5. Products derived from this software may not be called "Apache", nor may "Apache" appear in their name, without prior written permission of the Apache Software Foundation. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (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 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. =============================================================== This software consists of voluntary contributions made by many individuals on behalf of the Apache Software Foundation and was originally based on software copyright (c) 1999, Lotus Development Corporation., For more

9 information on the Apache Software Foundation, please see < Aurea Sonic 2013 incorporates Xerces v2.6.2 from the Apache Foundation. Such technology is subject to the following terms and conditions: The Apache Software License, Version Copyright (c) The Apache Software Foundation. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions 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 the redistribution, if any, must include the following acknowledgment: "This product includes software developed by the Apache Software Foundation ( Alternately, this acknowledgment may appear in the software itself, if and wherever such thirdparty acknowledgments normally appear. 4. The names "Xerces" and "Apache Software Foundation" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact apache@apache.org. 5. Products derived from this software may not be called "Apache", nor may "Apache" appear in their name, without prior written permission of the Apache Software Foundation. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (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 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. =============================================================== This software consists of voluntary contributions made by many individuals on behalf of the Apache Software Foundation and was originally based on software copyright (c) 1999, International Business Machines, Inc., For more information on the Apache Software Foundation, please see < Aurea Sonic 2013 incorporates Progress DataDirect Connect for JDBC v5.1 and Progress DataDirect Connect XE for JDBC v5.1 which incorporates HyperSQL database v from The HSQL Development Group. Such technology is subject to the following terms and conditions: Copyright (c) , The HSQL Development Group All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions 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. Neither the name of the HSQL Development Group nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG, OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (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 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Aurea Sonic 2013 incorporates Woodstox v3.2.8 and which incorporates Stax2 API v Such technology is subject to the terms and conditions of the following licenses: Copyright (c) , Woodstox Project ( All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials

10 provided with the distribution. 3. Neither the name of the Woodstox XML Processor nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (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 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Aurea Sonic 2013 incorporates JAXB v Such technology is subject to the following terms and conditions: Jing Copying Conditions Copyright (c) Thai Open Source Software Center Ltd. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions 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. Neither the name of the Thai Open Source Software Center Ltd nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (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 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Aurea Sonic 2013 incorporates ASM from Inria France Telecom. Such technology is subject to the following terms and conditions: Copyright (c) INRIA, France Telecom. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions 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. Neither the name of the copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (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 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

11 Contents Preface About This Guide Typographical Conventions Aurea Sonic Documentation Sonic ESB Documentation Worldwide Technical Support Part I ESB Configuration Tools and Managed Components Using Aurea Sonic ESB Configuration and Management Tools Overview Sonic Management Console ESB Configured Objects ESB Admin Tool and Commands Basic Commands SonicFS Maintenance Commands ESB Type Maintenance Commands License Container Commands Management Container Commands Deployment Tool Commands Analysis for Deployment Exporting for Deployment Tailoring Archives for Import Importing or Merging for Deployment Shutting Down Sonic Components and Sonic ESB Tools ESB Containers Overview Creating ESB Containers ESB Container Intra-container Messaging Viewing or Editing ESB Container Properties Defining Services Managing the Services Associated with an ESB Container Aurea Software, Inc. Confidential 11 Copyright 2013 Aurea, Inc.

12 Contents Adding Services or ESB Process Entry Points to an ESB Container Deleting ESB Container Services from an ESB Container Changing the Number of Listeners on Services in ESB Containers Changing the Startup Priority and Concurrent Calls of Processes and Services in ESB Containers 56 Deploying an ESB Container in a Management Container Setting Test Mode for ESB Containers Used in Development Adding JAR files to an ESB Container Changing the State of Management and ESB Containers Monitoring Service Metrics and Notifications Metrics esb.connect.requests Metrics esb.service.messages Metrics esb.service.listeners Metrics esb.service.concurrency Metrics FileDrop Metrics FilePickup Metrics Standard Notifications Enabling Integration with Actional for Visualization Logging and Tracing Using Activation Daemons Creating an Activation Daemon Adding an Activation Daemon to a Management Container Adding an ESB Container to an Activation Daemon s Activation List ESB Endpoints and Connections Overview ESB Addresses and References to Endpoints Entry Endpoint Exit Endpoint Fault Endpoint Rejected Message Endpoint Rejected Message Behavior Under Failure Conditions Evaluating Endpoint Requirements on JMS Destinations When to Use Topics, When to Use Queues Using Shared Subscriptions to Topics Using Concurrent Durable Subscriptions to Topics Multiple Brokers, Clusters, and Nodes Configuring Aura SonicMQ Endpoints Deleting Aura SonicMQ Endpoints Fault Tolerant Connections and Reconnection Inbound and Outbound Connections Fault Tolerant Connections Reconnection Initial Connections Interrupted Connections Quality of Service Setting the Ping Interval Configuring Connections Deleting Aura SonicMQ Connections Configuring Web Services Overview Configuring WebService Protocols for ESB Processes Related Configuration Documentation Aurea Software, Inc. Confidential 12 Copyright 2013 Aurea, Inc.

13 Contents Part II Configuring Database Services Using the Database Service JDBC Drivers JDBC Driver Connection Properties and the Database Service Load Balancing, Failover, and Connection Retry Client Load Balancing Connection Failover Connection Retry Specifying Primary and Alternate Servers Using Activation Daemons Driver Connection Properties and Data Types by Database Brand Progress OpenEdge Database Progress OpenEdge Connection Properties Progress OpenEdge Connection Failover Properties Specifying Alternate Servers for the Progress OpenEdge Driver Using the AlternateServers Property Progress OpenEdge Driver Data Types DB DB2 Driver Connection Properties DB2 Driver Connection Failover Properties Specifying Alternate Servers for the DB2 Driver DB2 Driver Data Types Informix Informix Driver Connection Properties Informix Driver Connection Failover Properties Specifying Alternate Servers for the Informix Driver Informix Driver Data Types Oracle Oracle Driver Connection Properties Oracle Driver Connection Failover Properties Specifying Alternate Servers for the Oracle Driver Oracle Driver Data Types Oracle Data Types XMLType Data Type Microsoft SQL Server Microsoft SQL Server Driver Connection Properties Microsoft SQL Server Driver Connection Failover Properties Specifying Alternate Servers for the Microsoft SQL Server Driver Microsoft SQL Server Driver Data Types Sybase Sybase Driver Connection Properties Sybase Driver Connection Failover Properties Specifying Alternate Servers for the Sybase Driver Sybase Driver Data Types SQL Escape Sequences for JDBC Date, Time, and Timestamp Escape Sequences Scalar Functions Outer Join Escape Sequences Procedure Call Escape Sequences Configuring SQL Server Windows Authentication Setting the Authentication Mode Aurea Software, Inc. Confidential 13 Copyright 2013 Aurea, Inc.

14 Contents Registering Service Principal Names (SPNs) Setting the Active Directory Encryption Property Part IV Integrating Sonic and Actional Using Actional with Sonic Components Instrumenting Sonic ESB Enabling the ESB Interceptor Using Stabilizers with Sonic ESB Using ESB-Specific Message Fields Enabling ESB Message Fields Startup Order Trust Zones Auditing Instrumenting SonicMQ Enabling the SonicMQ Interceptor Configuring an AOP Interceptor for a Sonic Container Configuring Actional Interceptors for Sonic Connect Visualization When Both Sonic Connect and Sonic ESB are Instrumented Exposing ESB Process over HTTP(s) - SOAP Exposing ESB Process over HTTP(s) - REST Calling externally hosted SOAP service as step in Itinerary Calling external REST service as a step in Itinerary Exposing a JAX-WS POJO over HTTP Exposing a JAX-RS POJO over HTTP Invoking a JAXWS POJO as a step in itinerary Invoking a JAXRS POJO as a step in itinerary Visualization When Both SonicMQ Broker and Sonic ESB are Instrumented Specifying the Uplink Configuration Location in Sonic Visualizing Special Itinerary Steps in Actional Faults visibility in the Actional Management Server Faults-specific message fields Abnormal Termination Sites RMEs visibility in the Actional Management Server Using Actional Trust Zones in Sonic ESB Aurea Actional Trust Zones Implementing Trust Zones in Aurea Sonic ESB Enable Actional Instrumentation in Sonic ESB Enabling Actional Instrumentation on an ESB Container Disabling Trust Enforcement on a Management Container (Optional) Register a Web Service with Actional Intermediary Define Trust Zones on Actional Server Bring Nodes under Actional Management Create and Configure Trust Zones Add Managed Nodes to a Trust Zone Index Aurea Software, Inc. Confidential 14 Copyright 2013 Aurea, Inc.

15 Preface This Preface contains the following sections: About This Guide on page 16 describes this manual and its intended audience. Typographical Conventions on page 17 describes the text formatting, syntax notation, and flags used in this manual. Aurea Sonic Documentation on page 18 describes the books and API online references packaged with the Sonic ESB Product Family. Worldwide Technical Support on page 19 provides information on how to contact Aurea Software s customer support and evaluation support for the Aurea Sonic ESB Product Family. Aurea Software, Inc. Confidential 15 Copyright 2013 Aurea, Inc.

16 Preface About This Guide This guide is intended for system administrators. This book is in four parts: Part I includes the chapters: Chapter 1, Using Aurea Sonic ESB Configuration and Management Tools on page 23 introduces Aurea Sonic ESB and its configuration and management tools. Chapter 2, ESB Containers on page 47 describes ESB Containers and Activation Daemons. Chapter 3, ESB Endpoints and Connections on page 79 describes how to use ESB components and resources. Chapter 4, Configuring Web Services on page 105 describes using Web Service standards in the configuration and management of ESB components and resources. Part II includes the chapters: Chapter 5, Using the Database Service JDBC Drivers on page 111 explains how to configure load balancing, failover, and connection retry for connections made using the drivers. Chapter 6, Driver Connection Properties and Data Types by Database Brand on page 119 describes the properties and data types for several database brands: Progress OpenEdge, DB2, Informix, Oracle, Microsft SQL Server, and Sybase. Chapter 7, SQL Escape Sequences for JDBC on page 191 describes the JDBC-defined escape sequences containing standard syntaxes for several language features. Chapter 8, Configuring SQL Server Windows Authentication on page 201 describes how to use Windows authentication on Microsoft SQL Server with the Aurea Sonic Database Service JDBC SQL Server driver. Part IV includes the chapters: Chapter 11, Using Actional with Sonic Components on page 207 shows how Sonic looks from the actional viewpoint. Chapter 12, Using Actional Trust Zones in Sonic ESB on page 229 describes how to use it as an additional layer of security in SOA environments. Aurea Software, Inc. Confidential 16 Copyright 2013 Aurea, Inc.

17 Typographical Conventions Typographical Conventions This section describes the text formatting conventions used in this guide and a description of notes, warnings, and important messages. This guide uses the following typographical conventions: Bold typeface in this font indicates keyboard key names (such as Tab or Enter) and the names of windows, menu commands, buttons, and other Sonic user interface elements. For example, From the File menu, choose Open. Bold typeface in this font emphasizes new terms when they are introduced. Monospace typeface indicates text that might appear on a computer screen other than the names of Sonic user-interface elements, including: Code examples and code that the user must enter System output such as responses and error messages Filenames, pathnames, and software component names, such as method names Bold monospace typeface emphasizes text that would otherwise appear in monospace typeface to emphasize some computer input or output in context. Monospace typeface in italics or Bold monospace typeface in italics (depending on context) indicates variables or placeholders for values you supply or that might vary from one case to another. This guide uses the following syntax notation conventions: Brackets ([ ]) in syntax statements indicate parameters that are optional. Braces ({ }) indicate that one (and only one) of the enclosed items is required. A vertical bar ( ) separates the alternative selections. Ellipses (...) indicate that you can choose one or more of the preceding items. This guide highlights special kinds of information by shading the information area, and indicating the type of alert in the left margin. Note: Note indicates information that complements the main text flow. Such information is especially important for understanding the concept or procedure being discussed. Important: Important indicates information that must be acted upon within the given context in order for the procedure or task (or other) to be successfully completed. Warning: Warning indicates information that can cause loss of data or other damage if ignored. Aurea Software, Inc. Confidential 17 Copyright 2013 Aurea, Inc.

18 Preface Aurea Sonic Documentation Sonic installations always have a welcome page that provides links to Sonic documentation, release notes, communities, and support. See the release s Product Update Bulletin book to see what s new and what s changed since prior releases. The Sonic documentation set includes the following books and API references. Sonic ESB Documentation Sonic ESB provides the following documentation: Aurea Sonic Installation and Upgrade Guide Provides information about installing, updating, and upgrading Sonic ESB components. Aurea Sonic Workbench User Guide (Aurea Sonic Workbench Online Help) Provides information about developing, testing, and debugging applications on the Aurea Sonic Workbench. Describes the Sonic Workbench, its editors, and tools. Provides information about how to get started with each component of the Sonic ESB Product Family and describes sample applications. Aurea Sonic ESB Configuration and Management Guide Provides information about configuring and managing components used by the Sonic ESB Product Family. Describes deployment configurations for Sonic ESB, and Sonic Database Service. Aurea Sonic ESB Deployment Guide Provides information about moving development projects into test and production environments. Describes recommended build procedures, domain mappings, and reporting features. Sonic ESB API Reference Online JavaDoc compilation of the Sonic ESB APIs. Aurea Software, Inc. Confidential 18 Copyright 2013 Aurea, Inc.

19 Worldwide Technical Support Worldwide Technical Support Aurea Software s Sonic support staff can provide assistance from the resources on their Web site at There you can access technical support for licensed Aurea Sonic editions to help you resolve technical problems that you encounter when installing or using Aurea Sonic products. When contacting Technical Support, please provide the following information: The release version number and serial number of SonicMQ that you are using. This information is listed on the license addendum. It is also at the top of the SonicMQ Broker console window and might appear as follows: SonicMQ Continuous Availability Edition [Serial Number nnnnnnn] Release nnn Build Number nnn Protocol nnn The release version number and serial number of Sonic ESB that you are using. This information is listed on the license addendum. It is also near the top of the console window for a Sonic ESB Container. For example: Sonic ESB Continuous Availability Edition [Serial Number: nnnnnnn]release nnn Build Number nnn The platform on which you are running Aurea Sonic products, and any other relevant environment information. The Java Virtual Machine (JVM) your installation uses. Your name and, if applicable, your company name. address, telephone, and fax numbers for contacting you. Aurea Software, Inc. Confidential 19 Copyright 2013 Aurea, Inc.

20 Preface Aurea Software, Inc. Confidential 20 Copyright 2013 Aurea, Inc.

21 ESB Configuration Tools and Managed Components Part I Part I contains the following chapters: Chapter 1, Using Aurea Sonic ESB Configuration and Management Tools on page 23 Chapter 2, ESB Containers on page 47 Chapter 3, ESB Endpoints and Connections on page 79 Chapter 4, Configuring Web Services on page 105 Aurea Software, Inc. Confidential 21 Copyright 2013 Aurea, Inc.

22 Chapter : ESB Configuration Tools and Managed Components Aurea Software, Inc. Confidential 22 Copyright 2013 Aurea, Inc.

23 Using Aurea Sonic ESB Configuration and Management Tools 1 Chapter 1, Using Aurea Sonic ESB Configuration and Management Tools on page 23 describes the tools for configuring and managing the Aurea Sonic ESB product family: Overview on page 24 describes how and where the Sonic ESB tools are used. Sonic Management Console on page 24 introduces this tool for managing and monitoring components deployed in containers, including ESB Containers and Aura SonicMQ brokers. This section also describes the ESB Configured Objects section, used for configuring components such as ESB Containers, endpoints, services, and ESB processes, and deploying them in an ESB Container. ESB Admin Tool and Commands on page 34 introduces this tool for command line actions that configure Aurea Sonic ESB containers and components, and manage the lifecycle of Aurea Sonic ESB components in management containers. For information about the Sonic ESB development environment, see the Aurea Sonic ESB Deployment Guide in the Sonic Workbench s Eclipse help. Important: This book assumes that you have deployment installations of Aurea Sonic 2013 products. While the Sonic Workbench has the same toolset, Sonic s integration of the tools into the development environment precludes direct access to these tools. As such, if you are using the Sonic Workbench, you might find some Start menu commands and some screenshots in this chapter inconsistent with those in a Workbench installation. You should avoid manipulating files that support a Sonic Workbench in its Directory Service unless explicitly instructed to do so, as you could cause unpredictable behavior in your SonicWorkbench. Aurea Software, Inc. Confidential 23 Copyright 2013 Aurea, Inc.

24 Chapter 1: Using Aurea Sonic ESB Configuration and Management Tools Overview The tools provided for configuring and managing Sonic ESB are independent of any Sonic domain. The tools are typically installed on systems where runtime components will not run. They connect to domains over the internet protocols to connect to a management broker for a domain for viewing and maintaining the configuraton objects in that domain. As a result, administrators can disconnect, relocate, and reconnect to diverse, distributed domains whenever and wherever needed. Note: WHAT S A SONIC DOMAIN? A Sonic domain is an administrative grouping of Aurea Sonic management containers, and brokers administered by one central management node, its Domain Manager. The domain manager is defined by its components: A management container that provides caching facilities, communicates with its management node (the broker it hosts), and hosts the other components of the domain manager. A broker dedicated to management communications for the domain manager s two essential functions, the Directory Service and the Agent Manager. A Directory Service that provides a centralized point for configuration information, runtime management, and configuration storage. An Agent Manager that monitors the state of all management containers in the domain. For information about the domain manager, see the Introduction to Configuration chapter in the Aurea SonicMQ Configuration and Management Guide and the Distributing Components chapter in the Aurea SonicMQ Deployment Guide. To use the Sonic ESB configuration and management tools, you must have a domain manager installed and the administration tools for SonicMQ and Sonic ESB installed. See the Aurea Sonic Installation and Upgrade Guide for information on a variety of installations of these product features. Once the software is installed and acessible, the first step is to start the domain manager. To start a domain manager: 1. On Windows, choose: Start > Programs > Aurea > Sonic 2013 > Start Domain Manager 2. On UNIX or Linux, set a console window to the Aurea Sonic installation s Containers/Domain1.DomainManager directory, and then enter launchcontainer.sh. Sonic Management Console The Sonic Management Console (SMC) provides a graphic interface for configuring, managing, and monitoring configured objects in the Sonic domain as well as launching supporting tools. Aurea Software, Inc. Confidential 24 Copyright 2013 Aurea, Inc.

25 Sonic Management Console To start the Sonic Management Console: 1. On Windows, choose: Start > Programs > Aurea > Sonic 2013 > Sonic Management Console 2. On UNIX or Linux, set a console window to the Aura SonicMQ installation directory, and type./bin/startmc.sh and press Return. The Sonic Management Console opens. The Create Connection dialog box opens, as shown: A Connection Name, the Domain Name, and its Connection URL are required when security is not enabled on the management broker. When security is enabled on the management broker, an authentic User Name and Password are also required. The dialog box displays all the default values except the default user s password: Administrator. To connect the Management Console to the domain: 1. Enter the connection information for the domain: Property Connection Name Domain Name Connection URL(s) User Name Password Description Identity to be associated with this connection. Name of the domain. URL(s) of the management broker(s). The user name for connection. The password of the user. For information about using the Advanced settings, see the Sonic Management Console chapter in the Aurea SonicMQ Configuration and Management Guide. 2. Click OK. A Connecting... dialog box and the status bar indicate that the Sonic Management Console is connecting to the management broker for a domain. Aurea Software, Inc. Confidential 25 Copyright 2013 Aurea, Inc.

26 Chapter 1: Using Aurea Sonic ESB Configuration and Management Tools The Sonic Management Console opens a connection window to the domain, and shows its objects in the CONFIGURE view. The following example shows the ESB Containers folder selected: 3. In the left panel, expand System > DBService > 2013 > lib: These are the supporting files for the configuration objects. They are accessed through the Sonic File System, SonicFS. Sonic ESB Containers and Sonic Workbench use the sonicfs protocol to reference files in SonicFS, for example, sonicfs:///system/dbservice/2013/lib/openedge.jar. Aurea Software, Inc. Confidential 26 Copyright 2013 Aurea, Inc.

27 Sonic Management Console The Resources folder stores files you create and that you will reference by connecting to the domain manager where they are stored and using the syntax sonicfs:///resources/myfile. A resource is the term used for a file in SonicFS used by Aurea Sonic ESB components. Resources are referenced in parameters for services, ESB processes, endpoints, and connections. Resource files can be accessed from SonicFS. For example, a service can read a script file directly from SonicFS. 4. Select the Manage tab and expand Containers. The following example shows the runtime state of several containers: The containers shown in this figure are: DomainManager The default name of the domain manager s container makes it easy to recognize. It is highlighted in green, indicating that it is running and all its hosted components are online. Service 1 Container through Service 5 Container The five management containers used for services installed in this domain are all running and the container that is expanded, Service4 Container, shows that its hosted component Service4 ESB Container is online. Aurea Software, Inc. Confidential 27 Copyright 2013 Aurea, Inc.

28 Chapter 1: Using Aurea Sonic ESB Configuration and Management Tools 5. If you have another domain running, connect to it. The following figure shows two domain connections in a Sonic Management Console. The following section explains how to work with the ESB Configured Objects section in the Configure tab of the Sonic Management Console. ESB Configured Objects The ESB Configured Objects section, located in the Configure tab of the Sonic Management Console, enables you to configure ESB Containers, endpoints, services, and ESB processes. The following procedure describes how to work with the ESB Configured Objects section in the SMC. The ESB CONFIGURED OBJECTS section is available when: 1. The Sonic installation where the Sonic Management Console (SMC) is launched includes both the SonicMQ tools and the Sonic ESB tools. 2. A domain where the Management Console is connected has been enabled by a Sonic ESB Tools installation. Aurea Software, Inc. Confidential 28 Copyright 2013 Aurea, Inc.

29 ESB Configured Objects If the Sonic ESB Tools are not installed for this SMC, yet the domain is enabled for Sonic ESB, the ESB Configured Objects section is not shown. You can see the /System files for SonicESB and the /ESB Containers objects using a default icon as shown: You should not attempt to manipulate these objects under these circumstances. In the reverse case the Sonic ESB tools are installed for this SMC, but the connected domain is not Sonic ESB enabled the ESB Configured Objects section is not shown. See the Aurea Sonic Installation and Upgrade Guide for information about tools installations and the option to specify a domain to be enabled for the tools. To work with the ESB Configured Objects section in the SMC: 1. With the Sonic Management Console connected to a domain that has been enabled for Sonic ESB, the ESB Configured Objects section is available in the Configure tab: This section can be expanded and contracted by double-clicking ESB Configured Objects. In this example, the section is shown expanded. Aurea Software, Inc. Confidential 29 Copyright 2013 Aurea, Inc.

30 Chapter 1: Using Aurea Sonic ESB Configuration and Management Tools 2. In the left panel, click on a container node in the ESB Containers folder, as shown: The services in the selected ESB Container are listed in the right panel. 3. Click on a name in the right panel to display its information and modifiable parameters. See Overview on page 48 for more information about ESB Containers. 4. In the left panel, click on an endpoint node in the Endpoints folder. Aurea Software, Inc. Confidential 30 Copyright 2013 Aurea, Inc.

31 ESB Configured Objects 5. Click on an endpoint name in the right panel to display its information and modifiable parameters, as shown: The endpoints for the selected endpoint name are displayed in the right panel. A tab provides access to the connections for the selected endpoint. 6. Choose the Connections tab to see the connections. 7. Click on a connection in the right panel to display its information and modifiable parameters, as shown: See Configuring Aura SonicMQ Endpoints on page 89 for more information about endpoints. 8. In the left panel, click on a service in the Services folder. The services of the selected Service type are listed in the right panel. Aurea Software, Inc. Confidential 31 Copyright 2013 Aurea, Inc.

32 Chapter 1: Using Aurea Sonic ESB Configuration and Management Tools 9. Click on a service in the right panel to display its information and modifiable parameters, as shown: Note that each service type shows its own unique set of classloading configurations and initialization parameters. Some initialization parameters specify explicit values, and some specify variables. If an initialization parameter specifies a variable, and the initialization parameter is editable, you can modify the variable value directly. If you specify a variable, the system replaces the variable with a parameter value at runtime. When a variable is used, the system has to obtain an actual parameter value from a data source. To determine the data source, the system examines the variable itself. The variable's syntax indicates where the system can find the parameter value. The syntax for variables is show below (the dollar sign, braces, and colons are literals; the brackets enclose optional elements): ${variable_source_type:[source_type_qualifier:]parameter_identifier} where variable_source_type is one of the following string literals: container The parameter value is defined in the deployment properties of the ESB container into which the service type is deployed. system The parameter value is defined in a JVM system property. Aurea Software, Inc. Confidential 32 Copyright 2013 Aurea, Inc.

33 ESB Configured Objects property The parameter value from a Java properties file. and source_type_qualifier is the following string literal: dynamic The parameter value is dynamically extracted from a specified properties file. This qualifier is required if variable_source_type is property and you do not want the property file read from a local cache. and parameter_identifier is one of the following: A valid SonicFS URL indicating a property in a Java properties file for example: ${property:sonicfs:///workspace/myproject/src/myservice.properties#myprop} Name of an ESB container property or name of a JVM system property. If it is the name of an ESB container property, variable_source_type must be container. If it is the name of JVM system property, then variable_source_type must be system. You can edit variables directly, or you can use the Global Parameter dialog box. For more information, see the Aurea Sonic Workbench User Guide in the Eclipse help. 10. Click on Processes. The processes are listed in the right panel. Aurea Software, Inc. Confidential 33 Copyright 2013 Aurea, Inc.

34 Chapter 1: Using Aurea Sonic ESB Configuration and Management Tools 11. In the right panel, choose a process to display its information, modifiable parameters, and tracking, as shown: The processes are listed in the right panel. In the right panel, choosing a process displays its information, modifiable parameters, and tracking. For more information, see the Aurea Sonic Workbench User Guide in the Eclipse help. ESB Admin Tool and Commands While you can perform most configuration and administrative tasks with the Sonic Management Console, you can also use the ESB Admin Tool to configure Aurea Sonic ESB containers and components, and to manage the lifecycle of Aurea Sonic ESB components deployed in management containers. You can also use the ESB Container to manage the Directory Service (SonicFS). One of the most common uses of the ESB Admin Tool is to import and export service types, services, endpoints, and connections. See the Aurea Sonic ESB Deployment Guide for information on using ESB Admin commands to move configurations from one domain to another. To start the ESB Admin Tool: 1. Select Start > Programs > Aurea > Sonic 2013 > Tools > ESB Admin Tool. The ESB Admin Tool console window opens. Aurea Software, Inc. Confidential 34 Copyright 2013 Aurea, Inc.

35 ESB Admin Tool and Commands 2. In a default installation, enter the following to connect to the domain manager: connect Domain1 tcp://localhost:2506 Administrator Administrator See the following sections and the connect command for additional information. After using the ESB Admin Tool, follow this procedure to stop the session. To stop an ESB Admin Tool session: In an ESB Admin Tool console window, type exit or bye and press Enter. Each of the ESB Container commands is described in the following section. ESB Admin Tool commands are not case sensitive. Many values are case sensistive; for example, trying to connect to Domain1, yet entering domain1 will not succeed. Basic Commands Most of the commands act on a connected Directory Service store so connect is typically the first command entered in an ESB Admin session. connect connect domain URL [username password] [managementnode] Connect to the domain manager at the specified URL. For example: connect Domain1 tcp://myhost:2506 anadmin apwd where: Domain is the Directory Service store where administration will occur. URL is the IP address or DNS name resolvable to the broker and port of a management broker of Domain in the form protocol://host:port. A URL list can be used when delimited by commas and enclosed in quotes. For example: connect Domain1 tcp://myhost:2506,tcp://myhostbackup:2506 anadmin apwd username password are the administrator credentials for authentication on the broker. managementnode is the routing definition name on the non-management broker or cluster that routes management communications to the management node. For more information, see the Management Over Dynamic Routing in the Multiple Nodes and Dynamic Routing chapter of the Aurea SonicMQ Deployment Guide. Note that the syntax of the connect command requires that, if you need to specify a managementnode, username and password must be specified as well. Aurea Software, Inc. Confidential 35 Copyright 2013 Aurea, Inc.

36 Chapter 1: Using Aurea Sonic ESB Configuration and Management Tools disconnect disconnect Disconnect from the domain manager. exit bye exit The exit commands stop the tool and close its window. help help? The help commands list the available ESB Admin commands and their syntax. SonicFS Maintenance Commands The following file and Directory Service actions are used in maintenance of the Sonic File System, SonicFS. add file add file name filename [override] Add a file as a resource to the domain with the specified name. If a resource already exists with that name, the command fails unless you specify override on the command line. For example, to import PO.xml to the specified location in SonicFS, creating f1 and f2 in the process: ESBAdmin> add file /f1/f2/po.xml C:\PO.xml Adding file into Directory Service... name = /f1/f2/po.xml file = C:\PO.xml override = false For example, to import C:\PO.xml to /Resources in SonicFS: ESBAdmin> add file PO.xml C:\PO.xml Adding file into Directory Service... name = PO.xml file = C:\PO.xml override = false Aurea Software, Inc. Confidential 36 Copyright 2013 Aurea, Inc.

37 ESB Admin Tool and Commands add directory add directory sonicfs_directory source_directory Recursively add the specified source directory (on disk) to the SonicFS in the Directory Service store. The sonicfs_directory argument can specify a fully qualified path in SonicFS. If sonicfs_directory is not fully qualified, it is assumed to be in the /Resources directory in SonicFS. For example, to add the local directory, mydir, to SonicFS: add directory /Resources/myDir c:/mydir delete file delete file filename Delete the file named filename from the domain. If a fully qualified path is not specified, the file is assumed to be in the /Resources directory in SonicFS. For example, to delete def.xml from the /Resources directory in SonicFS: delete file def.xml delete directory delete directory sonicfs_directory Delete the specified directory from domain Also deletes all subdirectories and files in those directories. export file export file name filename Export a file from the domain to the specified file and path. The export command is supported for all file types and supports paths and explicitly specified directories. The name argument can specify a fully qualified path in SonicFS. If name is not fully qualified, the file is assumed to be in /Resources. For example, to export def.xml from /Resources in SonicFS to c:\testfiles, enter: export file def.xml c:\testfiles\def.xml export directory export directory sonicfs_directory target_directory Recursively export the specified directory from the domain to the specified target directory. Aurea Software, Inc. Confidential 37 Copyright 2013 Aurea, Inc.

38 Chapter 1: Using Aurea Sonic ESB Configuration and Management Tools ESB Type Maintenance Commands Several commands that perform actions in the connected domain are qualified by a type value. The list and dump commands can optionally specify a type. The import, export, and delete commands require a type parameter to refine the scope of their action. The following types are valid for the ESB Admin Tool commands that use the type variable list, dump, export, import, and delete: Type Value accessor connection connectiontype endpoint endpointtype file license params process service servicetype xq_container list list [type] List the names of configurations in the domain. For example, to list the available types: list To list the service types in sonicfs:///resources: list servicetype The list command can be constrained to specified directories. For example, to list the contents of /f1/f2: list file /f1/f2 If /f1/f2 are subfolders in the /Resources folder, specify the full location: list file /Resources/f1/f2 dump dump [type] [name] [filename] Dump is an advanced command. You might be requested to use a specified dump syntax by Sonic technical support. To dump all available types, enter dump. Aurea Software, Inc. Confidential 38 Copyright 2013 Aurea, Inc.

39 License Container Commands To dump a type, add the type value you want. For example, to dump the endpoints, enter dump endpoint. The result is a file on the local file system named dump.txt that has all the endpoints in XML format. The file is placed in the start directory of the tool, sonic_install_dir/mq2013/bin. dump endpoint ESBSampleQ9 Generates a file on the local file system named dump.txt that has only the endpoint ESBSampleQ9 in XML format. dump endpoint ESBsampleQ9 C:\dumpedQ9.txt Generates a file on the local file system at C:\dumpedQ9.txt that has only the endpoint ESBSampleQ9 in XML format. A dump in XML format is useful for storing information, but you should use export rather than dump in deployments. export export type name filename Export a configuration from a specified type into the domain as the specified file. The export command supports all configuration types. import import type filename [override] Import a configuration from a specified file into the domain as the specified type. If a configuration exists with the name defined in the body of the XML file, the command fails. Specify override to force an overwrite of an existing configuration. delete delete type name Delete a configuration from the domain of the specified type and name. License Container Commands You can add or export a Sonic ESB license key (control number) in the connected domain. Within a domain, there is a single ESB license for each version. add license container add license container license_key [version] Add the Aurea Sonic ESB license key to SonicFS. The specified license key overwrites any Sonic ESB license key already in SonicFS. Use the version parameter to add multiple licenses. Specify the version in the format, Major.Minor, for example, export license container export license container [version] Aurea Software, Inc. Confidential 39 Copyright 2013 Aurea, Inc.

40 Chapter 1: Using Aurea Sonic ESB Configuration and Management Tools Display the license container to the console. Use the version parameter to export an earlier version s license. Specify the version in the format, Major.Minor, for example, ESBAdmin> export license container 2013 Displaying license key (control number) for version Control Number = nnnnnnnnnnnnnnn Management Container Commands Information about containers and operational actions in the connected domain can be performed by the ESB Container. container list container list Lists the management containers in the domain, with their state, view name, host (when online), and components. container shutdown container shutdown container_name Shuts down the specified management container (not ESB Container). For example: container shutdown containername container status container status container_name Reports the status of a management container. For example: ESBAdmin> container status DomainManager Container Name = DomainManager, State = Online, Container Config Name = /Containers/DomainManager, Host = NBSRUSSO3.bedford.aurea.com Component Name = ActivationDaemon1, State = Online Component Name = Broker1, State = Online container [suspend resume reload] container [suspend resume reload] container_name component_name Perform the specified operation on the management container and ESB Container (a component of the management container). Deployment Tool Commands Deployment tool commands are in the following categories: Analysis for deployment Exporting for deployment Tailoring archives for import Importing or merging for deployment Aurea Software, Inc. Confidential 40 Copyright 2013 Aurea, Inc.

41 License Container Commands Analysis for Deployment The analysis commands diff, mqdepends, mqrevdepends, and impact contrast archive files, file system structures, and Directory Service stores for differences and dependencies. Note: The analysis commands are one aspect of the set of deployment tools used in Sonic ESB deployments. See the Aurea Sonic ESB Deployment Guide for information about this set of commands and the import and export tools that facilitate deployment. These commands do not require that a connect command was executed as they either work with file systems and archives outside the Directory Service or establish their connections within the command. The general syntax of the analysis commands is: Uses one or more storetype, each with storeparams as follows: The first -storetype storeparams identifies the source artifact store, and the next -storetype storeparams identifies the target artifact store. storetype is { xar fs ds }. storeparams are: When storetype is xar, the archive location on a file system When storetype is fs, the root of the hierarchy on a file system When storetype is ds, the management connection to a domain in the form: domain url [username password] [managementnode] Every analysis command produces an output file. The out parameter specifies the preferred location of the.xml file that reports on the analysis. The directory hierarchy you specify must exist for the command to succeed. If you do not specify an output file, a default file is created in the ESB Admin Tool s working directory as follows: Analysis Tool Default Output File diff mqdepends mqrevdepends impact Sonic_Diff.xml Sonic_Dependency.xml Sonic_ReverseDependency.xml Sonic_ImpactAnalysis.xml Some analysis commands provide a v switch to enable enhanced verbosity. diff diff -storetype storeparams -storetype storeparams [-out outfile.xml] [-v] Aurea Software, Inc. Confidential 41 Copyright 2013 Aurea, Inc.

42 Chapter 1: Using Aurea Sonic ESB Configuration and Management Tools The diff command assesses the difference between two artifact stores. Unlike a generic differencing engine, the ESBAdmin diff only assesses specific filetypes in certain store types. The stores can be Sonic archive files XAR files (-xar store type), file systems (-fs store type), or Directory Service stores (-ds store type). Differences include: Artifacts that are in both stores yet do not have identical content. You can choose to identify only that the files are dissimilar or to expose the differences in detail. Artifacts that are in the source store but not in the target store Artifacts that are in the target store but not in the source store As an example, a command comparing a XAR file with a Directory Service store is: diff -xar sourcestore.xar -ds Domain1 myhost:2506 auser apassword mqdepends mqdepends -storetype storeparams -out outputfile.xml [-include artifact1 [artifact2...] -includefile artifactlistfile] where the optional parameters include: artifact1 artifact2...(a series of specific files in the store to analyze) artifactlistfile (a text file that provides a list of files in the store to analyze) The mqdepends command assesses a source artifact store to evaluate and report on the dependencies of ESB artifacts on SonicMQ configuration objects. You can use this information to create or verify the existence of the specified dependencies in a target Directory Service store. The stores can be a Sonic archive file, file system, or a Directory Service store. Sonic ESB dependencies on SonicMQ artifacts include: Endpoints for their destination dependencies (topics, queues, or routing). ESB connections for SonicMQ connection parameters (and, therefore, the broker location and port where static destinations must be created. As an example, to produce a dependency report on specified files: mqdepends -fs C:/myinstalldir/ESB -include processa servicea serviceb mqrevdepends mqrevdepends -storetype storeparams [-out outfile.xml] [-include artifact1 [artifact2...] -includefile artifactlistfile] where the optional parameters include: artifact1 artifact2... is a series of specific files in the store to analyze artifactlistfile is text file that provides a list of files in the store to analyze Aurea Software, Inc. Confidential 42 Copyright 2013 Aurea, Inc.

43 License Container Commands The mqrevdepends command assesses a source artifact store to evaluate and report on the dependencies of ESB artifacts on SonicMQ configuration objects. You can use this information to create or verify the existence of the specified dependencies in a target Directory Service store. Reverse dependency produces the same set of information as a dependency. However, the information indicates a required SonicMQ configuration element, and then the ESB artifacts that depend on it. As an example, to produce a reverse dependency report on a list of specific files: mqrevdepends -fs C:/fileDir/ESB -includefile artifactlist.txt Impact impact -storetype storeparams -storetype storeparams [-out outfile.xml] [-v] Assessing impact on a Directory Service store requires a connect command to establish a connection to the domain prior to invoking impact. An impact analysis report combines features of diff and mqdepends. Together, these features define the impact on the target store that would result from merging the source store into the target store. Because this report assesses impact, the following information is also included: If a binary file type is different, the impact analysis report indicates that the file in the source store will overwrite the one in the target store. If a file exists in the source store but not in the target store, the impact analysis report indicates that a new file will be added to the target store. However, if a file exists in the target store but not in the source store, it is not reported as it is not impacted and will not be affected by any import actions. If a dependency indicates that SonicMQ configuration objects must be created, the impact analysis report describes the requirement. Conversely, if existing SonicMQ configuration objects are no longer required, the impact analysis report notes that fact. As an example, to report on the impact of an archive on a Directory Service store: impact -xar sourcestore.xar -ds Domain1 myhost:2506 auser apwd Exporting for Deployment The deployment export commands create bootfiles and exported artifacts for deployment to other domains. The Aurea Sonic ESB Deployment Guide provides information on using these commands. export fs export fs targetfilesyspath [sourcefilesyspath exportpropfile all] Export to a file system path as a file structure. export archive export archive targetarchivefile [sourcearchivefile exportpropfile all] Aurea Software, Inc. Confidential 43 Copyright 2013 Aurea, Inc.

44 Chapter 1: Using Aurea Sonic ESB Configuration and Management Tools Export to a Sonic archive file. export bootfile export bootfile container_config_name [filename] Create a boot file to use when starting an ESB Container. By default a boot file is created in the current working directory with the name, bootname.xml Optionally, specify a file name to have the boot file created elsewhere. Tailoring Archives for Import The tailoring commands create intermediate files that are tuned for a target domain so you can map archives for import into the domain to the characteristics of the target domain. The Aurea Sonic ESB Deployment Guide provides information on using these commands. createmap createmap archive_file map_file [rules file] Create a tailoring map file that is edited and then applied to a Sonic archive using the applymap command. applymap applymap input_archive_file map_file output_archive file [log file] Create a tailored archive from a source archive and a tailoring map file. Importing or Merging for Deployment The import and merge commands transfer the source data into the connected domain. The Aurea Sonic ESB Deployment Guide provides information on using these commands. import fs import fs sourcefilesyspath [importpropfile override] Import into a domain from a file system path as a file structure where: sourcefilesyspath is the root of the file system hierarchy that contains the files to be imported into the connected Directory Service s store. One of the following arguments is used: importpropfile When an import properties file was created and saved, it can be applied as a parameter of the command to apply the defined overwrite and ignore settings. override Set overwrite of matching files to true. import archive import archive sourcearchivefile [importpropfile override] Import into a domain from a Sonic Archive file. Aurea Software, Inc. Confidential 44 Copyright 2013 Aurea, Inc.

45 License Container Commands merge (standard form) merge -storetype storeparams -storetype storeparams [-out outfile.xml] [-v] where: The first -storetype storeparams identifies the source artifact store, and the next -storetype storeparams identifies the target artifact store. storetype is { xar fs ds }. storeparams are: When storetype is xar, the archive location on a file system When storetype is fs, the root of the hierarchy on a file system When storetype is ds, the management connection to a domain in the form: domain url [username password] [managementnode] The out parameter lets you specify the preferred location of the.xml file that reports on the analysis. If you do not specify an output file, a default file (Sonic_Merge.xml) is created in the ESB Container s working directory -v requests verbose reporting For example, to merge an archive into a Directory Service store: merge -xar sourcestore.xar -ds Domain1 myhost:2506 auser apwd -out c:\out.xml merge (compound form) A variation in the syntax of the merge command enables the merger of two source stores into a target store. As a result, the target store is acted on but the two source stores are unmodified. The source and target stores can be XAR files, file systems, or Directory Service stores. The syntax of the advanced merge command in the Sonic ESB Admin Tool is: merge -sourcestore1type sourcestore1params -sourcestore2type sourcestore2params -targetstoretype targetstoreparams [-out outfile.xml] [-v] where the variation from a standard merge is that sourcestore1 and sourcestore2 are two distinct source types with their respective parameters that will be sequentially merged into the target store. For example, to merge a XAR and a file system into a target file system: merge -xar source.xar -fs C:/sourceDir/ESB -fs C:/targetDir/ESB -out c:\out.xml Aurea Software, Inc. Confidential 45 Copyright 2013 Aurea, Inc.

46 Chapter 1: Using Aurea Sonic ESB Configuration and Management Tools Shutting Down Sonic Components and Sonic ESB Tools To shut down the tools and components in a Aurea Sonic ESB environment, perform an orderly shutdown of Sonic components, and then stop the tools. The following procedure assumes that you want to stop all the components in connected domains, and then stop the tools in the local installation. If you want to stop all the components that are running on the local system where the tools were started, connect to that domain so that you can perform actions on its components. To perform an orderly shut down of Sonic components: In each domain, shut down any running containers: 1. In the Sonic Management Console, select the Manage tab. 2. Choose the containers folders, typically /Containers 3. Right-click on each container name you want to stop, and select Operations > Shutdown. 4. Be sure to shut down the container named DomainManager last. The specified configuration objects are stopped. To shut down Sonic ESB tools: 1. Shortly after you stop a domain manager where tools are connected, you are prompted that there is problem trying to resume connection. That is to be expected. Close the open windows within the Sonic Management Console to stop their connections. 2. If the JMS Test Client is running, close it. 3. If the ESB Container is running, enter bye to stop it. 4. In the Sonic Management Console, select Action > Exit. The Sonic ESB tools are stopped. Aurea Software, Inc. Confidential 46 Copyright 2013 Aurea, Inc.

47 ESB Containers 2 Aurea Sonic ESB is a framework composed of classes and APIs for architecting, developing, and configuring distributed services. This framework includes an ESB Container, a centralized configuration service, and key routing and processing services. This chapter explains how to work with Sonic ESB Containers and describes services and messages in the Sonic ESB framework. This chapter contains the following sections: Overview on page 48 Creating ESB Containers on page 50 Defining Services on page 53 Managing the Services Associated with an ESB Container on page 54 Deploying an ESB Container in a Management Container on page 57 Changing the State of Management and ESB Containers on page 60 Monitoring Service Metrics and Notifications on page 63 Enabling Integration with Actional for Visualization on page 70 Logging and Tracing on page 72 Using Activation Daemons on page 74 Note: The tasks in this chapter are oriented toward deployment specialists. Sonic ESB Product Family s development environment, the Sonic Workbench, manages ESB Containers, starting and stopping them for you, often automatically. When you add or remove services and processes to your development environment, you do not have to perform most of the tasks described in this chapter. In the Sonic Workbench, you can perform many of these actions in the Containers view. See the Sonic ESB Product Family: Developer s Guide in Sonic Workbench online help. Aurea Software, Inc. Confidential 47 Copyright 2013 Aurea, Inc.

48 Chapter 2: ESB Containers Overview ESB Containers host services, endpoints, and ESB processes. Configuration information is provided to an ESB Container from a centralized Directory Service. The Directory Service notifies containers of configuration changes and updates each container s cache of configuration information. An ESB Container also provides access to a common log file for all the services it hosts. In addition to ESB processes, services, and endpoints, ESB Container components include: Management framework access Provides access to the centralized configuration store and standard facilities for managing the container s assets. Connectivity components Manage connections and communication with external resources, including JMS. They include the endpoint manager for access to existing endpoints (by name) or creation of new ones. Services and ESB processes Handle the application-level components or services and manage the interaction of service code with the environment, including the application manager (which controls the lifecycle of ESB services,) the service application (which sets up each instance of a service) and the dispatcher (which passes each message to a service and sends processed messages to the next destination or endpoint.) Factory objects Create instances of objects that services require: MessageFactory Creates new messages to be sent. EnvelopeFactory Creates new envelopes to associate messages with addresses. AddressFactory Creates addresses for envelopes allowing messages to be sent to an ESB process, service, or endpoint. An ESB Container manages the lifecycle of services and creates a pool of connections to JMS endpoints (destinations). Each ESB Container within a Sonic domain must have a unique name. When an ESB Container starts up, it follows this sequence: 1. The management container reads its local boot file. This file contains the name of the management container as well as the connection information (URL, username, and password) used in enabling the management communications layer. The connection information must be the same as that used by the Directory Service. This file can be encrypted (see the Configuring Framework Components chapter in the Aurea SonicMQ Configuration and Management Guide). 2. The container enables management communications and makes a request for its basic configuration information. 3. The Directory Service replies with the name of the ESB Container in the management container (plus other components, such as an Activation Daemon). 4. The configuration of the ESB Container is requested. 5. The Directory Service replies with the list of services to be run within the ESB Container. Aurea Software, Inc. Confidential 48 Copyright 2013 Aurea, Inc.

49 Overview 6. The ESB Container starts its internal components, including services and connections. This often involves additional requests from the Directory Service for additional configuration information. 7. During startup, the ESB Container might make additional JMS connections required by the services it supports. These connections are independent of the initial management connection. Typically, the usernames and passwords for these application connections are different from the username and password used for management connections. A running ESB Container continues to make management requests on its own and responds to administrative requests from the management tools, such as the Sonic Management Console. Some reasons for this additional communication include: Additional configuration information is needed by a service. These requests are directed to the Directory Service, (for example, process configurations.) Management tools send life cycle management commands to the management container, for example, to suspend operation, reload configuration information, or initiate a shutdown operation. Requests for status from other components or tools. The following events occur as the ESB Container manages message transfer: 1. The ESB Container reads configuration information from the Directory Service. 2. The ESB Container establishes JMS connections to Aura SonicMQ destinations (topics or queues). 3. The ESB Container pools JMS connections. 4. Messages arriving on their Aura SonicMQ destinations are allocated to services that implement the XQService interface by calling their service( ) method, using the predefined Quality of Service (QoS) EXACTLY_ONCE, AT_LEAST_ONCE, or BEST_EFFORT. 5. Messages are processed by the services. 6. Output messages are generated by the services and placed in an OUTBOX. 7. Messages in the OUTBOX are sent to SonicMQ destinations by the services, or to other services in the container. An ESB Container is deployed as a component in a management container. The management container caches all the information that it looks up in its domain manager s Directory Service store. If the domain manager is not accessible and the management container is not looking up any new configurations (including resources such as stylesheets, new services, or endpoints) at that time, then the container can continue running despite the domain manager failure. However, if a new configuration is necessary that is not cached, it must wait for the Directory Service to be restarted. In addition to providing configuration information, a management container also provides access to a common log file for all of the components it hosts. (For information on container caching and logging, see the Configuring Containers and Collections and Managing Containers and Collections chapters in the Aurea SonicMQ Configuration and Management Guide.) Aurea Software, Inc. Confidential 49 Copyright 2013 Aurea, Inc.

50 Chapter 2: ESB Containers The following sections describe how to manage installed ESB Containers and create new ESB Containers. Use the Sonic Management Console to add Aurea Sonic ESB components to a container. Creating ESB Containers The following procedure describes how to create an ESB Container using the ESB Configured Objects section of the Sonic Management Console. To create a new ESB Container: 1. In the left panel in the Sonic Management Console, under the ESB Configured Objects node, click the ESB Containers folder. 2. In the right panel, click New. The entry fields for the ESB container are as shown: 3. In the ESB Container Maintenance section, specify the following properties: Name Property Intra-container Messaging The name of the ESB container. Description Select to allow the container to bypass the overhead of sending and receiving messages to and from endpoints when the services in that ESB process reside in the same container. Also used for all OUTBOX processing where dynamic routing is indicated (when the target destination is a remote destination such as NodeA::T1). Aurea Software, Inc. Confidential 50 Copyright 2013 Aurea, Inc.

51 Creating ESB Containers Property ESB (JMS) Connection HTTP Routing Connection Description Specify the ESB connection used to call web services deployed on the ESB (in contrast to those available at an external HTTP address). Select the checkbox to provide an EL expression for the ESB (JMS) connection. This enables the ESB container s ESB (JMS) connection to be dynamic and to be determined at the startup time. When you select the checkbox, the drop-down menu is replaced with the EL expression text box. Click the Browse (...) button to open the Generate Expression dialog box. The supported types in the Generate Expression dialog box are System Properties, Properties File, and Container. Specify the required details to generate the expression. By default, the checkbox is unchecked. Specify the HTTP routing connection to the SonicMQ broker that is used for web services with HTTP addresses. For more information, see the Progress Sonic Workbench User Guide in the Eclipse help. 4. In the Actional Integration section, specify the following properties: Property Enable Actional Instrumentation Enable Payload Capture Description Select this option to enable Actional Server visualization on this ESB container. By default, the option is not selected (unchecked). See the chapter on Instrumenting Sonic ESB in the Actional Interceptor Guide. When Actional instrumentation is enabled, declares whether the instrumentation should include the message body. Note: Payloads are only reported when required by policy defined in Actional. When Enable Payload Capture is not checked for a container, no payloads are reported (regardless of policy in Actional). When payload is requested, all message parts are reported to Actional. The Actional Integration feature requires Aurea Actional software products to provide visibility, control, and enforcement of deployed assets. This Sonic release is compatible with Actional release For more information, see the Actional Web site at Note: Performance Impact Enabling Actional instrumentation has an effect on performance. It is a good practice to test performance with and without instrumentation to quantify the impact in your environment. 5. Click Apply to complete the definition of the ESB Container you created. You now need to add services to the ESB Container. Aurea Software, Inc. Confidential 51 Copyright 2013 Aurea, Inc.

52 Chapter 2: ESB Containers To add services to an ESB Container: 1. In the left panel in the Sonic Management Console, under the ESB Configured Objects node, expand the ESB Containers folder. 2. Select the ESB Container to which you want to add services, and then click New in the right panel of the Sonic Management Console. The Select Service or Process to Add to Container dialog box opens. To select or create an element to add to your ESB Container, see Adding Services or ESB Process Entry Points to an ESB Container on page 54 for detailed information. 3. Click OK to close the Select Service or Process to Add to Container dialog box. Note: You do not have to add ESB Processes to containers unless you want to make them directly accessible over a JMS Endpoint. This entry endpoint will only be used by external JMS (or WS-Protocol clients.) ESB services sending to a process always go to the first step. 4. Click Apply in the lower right panel of the Sonic Management Console to apply the changes to your ESB Container. The service or ESB process you selected appears in the right panel. You can repeat this step to add services and ESB processes to your ESB Container. (You can click Reset to restore the previously applied values before you click Apply.) If you click Undo, any changes made before the previous Apply are undone. The information reverts to its previous state and Redo becomes available. (Undo does not undo the last change unless Apply has been clicked.) ESB Container Intra-container Messaging Intra-container messaging allows a container to bypass the overhead of sending and receiving messages to and from services in a process when the next service in an ESB Process resides in the same container. When you select intra-container messaging for an ESB Container, a message in the Outbox of one service (that is addressed to another service in the same ESB Container) is sent directly the other service, bypassing the broker. Messages sent to a Sonic ESB service where intra-container messaging is enabled bypass the broker, so any listeners outside the container will not receive these messages. The Quality of Service (QoS) for the entire message dispatch through a process or chain of services is dictated by the QoS of the entry endpoint of the service that first receives the message off the originating JMS destination. For example, when a service whose entry endpoint has a QoS of EXACTLY_ONCE receives a message, that message will have QoS of EXACTLY_ONCE throughout the process until it reaches another JMS destination, regardless of the QoS of any other services it passes through after the first service. In this example, if a fatal error (such as a container crash, machine crash, or power failure) occurs, a message that is not committed at the time of failure will be resent when the container becomes available. The uncommitted message is resent in this case because it retains the QoS of EXACTLY_ONCE. See Quality of Service on page 96 for more information about QoS. Aurea Software, Inc. Confidential 52 Copyright 2013 Aurea, Inc.

53 Defining Services Viewing or Editing ESB Container Properties Follow this procedure to view and edit the properties of installed ESB Containers. To view or edit the properties of installed ESB Containers: 1. Start the Sonic Management Console. (See Using Aurea Sonic ESB Configuration and Management Tools on page 23.) 2. In the left panel, under the ESB Configured Objects node, select the ESB Containers folder. The right panel lists any installed ESB Containers: In this example, the ESB Container esb2 is selected so its properties are displayed. You can edit the properties for the selected container (except its name), as described in Creating ESB Containers on page 50. Defining Services While standard services are provided for ESB, you need to define what you want to deploy in ESB Containers. The following procedure shows how to define a service. To define a standard service: 1. In the left panel in the Sonic Management Console, under the ESB Configured ObjectS node, expand the Services folder and select a service. The right panel displays instances of the selected service if any are already defined. 2. Choose a service. For example, select Content-Based Routing. 3. On the right panel, click New. Aurea Software, Inc. Confidential 53 Copyright 2013 Aurea, Inc.

54 Chapter 2: ESB Containers 4. For now, just enter the Service Name mycbr, and then click Apply. The service definition is listed as shown: Managing the Services Associated with an ESB Container The following procedure shows how to manage services in an ESB Container. Adding Services or ESB Process Entry Points to an ESB Container Follow this procedure to add a service or ESB process entry point to an ESB Container. To add a service or ESB process entry point to an ESB Container: 1. In the left panel in the Sonic Management Console, under the ESB Configured Objects node, expand the ESB Containers folder, and then select an ESB Container. 2. In the right panel, click New. Aurea Software, Inc. Confidential 54 Copyright 2013 Aurea, Inc.

55 Managing the Services Associated with an ESB Container The Select Service or Process to Add to Container dialog box opens. To constrain the list to services or processes, set either the Show Services or the Show Processes icons. Show Services Show Processes Show Fault HandlerProcesses Select from available services and ESB processes in this dialog box. You can sort the list by Name, Type, and/or Category. 3. Select a service or ESB process and click OK. 4. Click Apply. Your selection is added to the list in the top right panel. Note: When you add a service or process to an ESB Container, the container must be restarted to implement the changes. To view the services associated with an ESB Container: 1. In the left panel in the Sonic Management Console, under the ESB Configured Objects node, expand the ESB Containers folder and select an ESB Container. The right panel displays information for the selected ESB Container. For example, select esb2. You can sort the list of services by Name, Type, Listeners, or Entry Endpoint. Deleting ESB Container Services from an ESB Container Follow this procedure to delete a service from an ESB Container. To delete a service from an ESB Container: 1. In the left panel in the Sonic Management Console, under the ESB Configured Objects node, expand the ESB Containers folder and select an ESB Container. 2. Select the service and click Delete. 3. Confirm your selection. Aurea Sonic ESB removes the selection from the list. Aurea Software, Inc. Confidential 55 Copyright 2013 Aurea, Inc.

56 Chapter 2: ESB Containers Important: When you delete a service or process from an ESB Container, the container must be restarted to implement the changes. Changing the Number of Listeners on Services in ESB Containers You can edit a service to change the number of listeners. Each listener is a thread. The listener count setting for an ESB service has two purposes: If the service/process has an entry endpoint, then ESB creates listener threads (JMS Sessions) equal to the session count. In all cases (more relevant to intracontainer), this setting is also used to control the maximum number of concurrent executions of the service. If the number of concurrent requests (including intracontainer) are more than the number of listeners then the next call to the service blocks until the number of concurrent executions fall below the listener count. Therefore, in a container with intracontainer enabled, a service configured with fewer listeners can be a bottleneck if other services that interact with this service have larger listener counts. To edit the number of listeners on a service associated with an ESB Container: 1. In the left panel in the Sonic Management Console, under the ESB Configured Objects node, expand the ESB Containers folder and select an ESB Container. 2. In the right panel, select a service whose listeners you want to edit. 3. Change the number of listeners to the value you prefer. 4. After you make a change, click Apply to commit the changes. Note: When you modify a service or process in an ESB Container, you must restart the container for the changes to become effective. Changing the Startup Priority and Concurrent Calls of Processes and Services in ESB Containers The startup priority value defines the order in which the processes or services are loaded on to a container. It must be in the range of 0 to and the default value is 0. The processes or services are loaded on to the container in the order specified by the startup priority value with 0 being the first one loaded. The concurrent calls value determines the maximum number of XQService.service() invocations that can occur concurrently. The concurrent calls value must be in the range of -1(unlimited), or 0 to Aurea Software, Inc. Confidential 56 Copyright 2013 Aurea, Inc.

57 Deploying an ESB Container in a Management Container To change the startup priority and concurrent calls of processes or services to be loaded in a container: 1. In the left panel of the Sonic Management Console, under the ESB Configured Objects node, expand the ESB Containers folder and select an ESB Container. 2. In the right panel, select a process or service whose startup priority you want to change. 3. Click the Advanced tab. 4. Modify the Startup Priority value. 5. Modify the Concurrent Calls value. 6. After you make a change, click Apply to commit the changes. Note: When you modify the startup preference of a service or process in an ESB Container, you must restart the container for the changes to become effective. Deploying an ESB Container in a Management Container An ESB Container is deployed as a component in a management container. A component is a software object meant to interact with other components, and encapsulating certain functionality. A component has clearly defined interfaces and conforms to a prescribed behavior common to all similar components within an architecture. The following table lists the appropriate sections in the Configuring Containers and Collections chapter in the Aurea SonicMQ Configuration and Management Guide that describe how to deploy an ESB Container in a container and other information about containers. Topic Creating a management container Adding an ESB Container as a component in a management container Generating a management container boot file Using fault tolerant (backup) management containers Section Configuring Containers Configuring Container Components Generating Container Boot Files Generating Containers (Also see the SonicMQ Deployment Guide chapter Fault Tolerant Application Containers. ) Note that there is no configuration for a fault tolerant ESB Container. Aurea Software, Inc. Confidential 57 Copyright 2013 Aurea, Inc.

58 Chapter 2: ESB Containers Setting Test Mode for ESB Containers Used in Development To use a new ESB Container, the Sonic Workbench requires that you set the ESB Container s property TEST_CONTAINER_MODE to true. To set an ESB Container to Test Mode: 1. Create an ESB Container, and then create a management container. 2. Add the ESB Container to the management container as a component. 3. Click on the management container. On the right panel, right-click on the ESB Container component, and then choose Properties. 4. Choose the Deployment Parameters tab, and then click Add. 5. In the New Deployment Parameter dialog box, enter the Name TEST_CONTAINER_MODE and the Value true. Click OK. 6. The deployment parameter appears as shown: 7. Click OK to apply the setting. Adding JAR files to an ESB Container When you have JAR files used by the ESB Container, you need to import the.jar files into the domain, and then set the classpath for each ESB Container that references classes in those archives. The following procedure explains how to import a.jar file and set the classpath for an ESB Container. Aurea Software, Inc. Confidential 58 Copyright 2013 Aurea, Inc.

59 Deploying an ESB Container in a Management Container To import a.jar file and set the classpath for an ESB Container: 1. In the Sonic Management Console s Configure tab, select the configuration path where you want to locate the.jar file. 2. Select Action > Import. The archive is imported into the domain. In the following example, a folder named myjars was created in the Resources folder, and then, with the new folder selected, the archive myjarone.jar was imported from the file system. 3. Expand the ESB Containers folder, right-click on the ESB Container for which you want to add the classpath, and select Properties. 4. Click the Resources tab, and then click Add. Navigate to your imported.jar file. Aurea Software, Inc. Confidential 59 Copyright 2013 Aurea, Inc.

60 Chapter 2: ESB Containers The sonicfs:/// prefix is added when you browse to the file location, as shown: 5. Click OK to close the Add Classpath dialog box, then click OK to close the Edit Sonic ESB Containers Properties dialog box. The.jar file is now on the container classpath. 6. Reload the container. You do not have to restart it. Note: You usually import archives and their classpath reference during the import process of the service type. Changing the State of Management and ESB Containers Follow this procedure to view and change the state of management containers and ESB Containers. To view and change the state of management containers and ESB Containers: 1. Select the Manage tab in Sonic Management Console and select the folder that contains the management containers. Container state can be Online, Offline, or Unavailable. You can sort the list of management containers by Name, State, or Last Error. For each management container, you can view its ESB containers; and for each ESB container, you can view its ESB services and ESB processes. Aurea Software, Inc. Confidential 60 Copyright 2013 Aurea, Inc.

61 Changing the State of Management and ESB Containers 2. You can select a management container, right click, and select Operations to: Launch Restart Operation Shutdown Reset Metrics Invoke Diagnostics... Description Launches the container (provided that management container is on the activation list of a running Activation Daemon deployed where the management container is deployed.) Choosing to launch lets you choose the activation daemon and then the container to launch. Restarts the container Shuts down the container Resets container-wide metrics Opens the Sonic Diagnostics dialog box. For more information on management container operations, see the Managing Containers and Collections chapter in the Aurea SonicMQ Configuration and Management Guide. Warning: Do not include an external jndi.properties file in the classpath of an ESB Container (or even the classpath of the JVM used to launch the container), as this will prevent starting the management container hosting the ESB Container. 3. You can select a management container, right click, and select Container LOG to: Operation View Clear Save to File... Description Views the contents of the container log. Clear the contents of the container log. Saves the container log to a file. 4. Select the management container you want to view. The color of the management container indicates the aggregate state of its components and sub-components. Color State Red Green Yellow Cyan The management container is offline All the components and sub-components are online One or more components or sub-components are offline or in error state One or more components are starting or stopping 5. Select the ESB container you want to view. In this example, the management container contains the ESB container and the broker br_test1: Aurea Software, Inc. Confidential 61 Copyright 2013 Aurea, Inc.

62 Chapter 2: ESB Containers An ESB Container s state is Online, Offline, or Unavailable. You can sort the list of ESB Containers by Name, Type, State, or Last Error. The color of each ESB container indicates the aggregate state of its ESB services and ESB processes. Color State Red Green Yellow Cyan All the services or processes are offline or in error state All the services or processes are online One or more services or processes are offline or in error state One or more services or processes are starting or stopping For each ESB container, you can view its ESB services and ESB processes. The color of each ESB service or process indicates its state. Color State Red Green Cyan The ESB service or process is offline or in an error state The ESB service or process is online The ESB service or process is starting or stopping 6. To perform operations on an ESB Container, right click on it, then select Operations: Operation Start Stop Reload Abort Clear Error Reset Metrics Starts the ESB Container Stops the ESB Container Description Unloads the ESB Container, reloads configuration information, and restarts services in the ESB Container Aborts the ESB container, its ESB services, and its ESB processes. Clears the last error. Resets container-wide metrics. For more information on component operations (ESB Containers are components in management containers), see the Managing Containers and Collections chapter in the Aurea SonicMQ Configuration and Management Guide and the Containers view in the Sonic Workbench. Aurea Software, Inc. Confidential 62 Copyright 2013 Aurea, Inc.

63 Monitoring Service Metrics and Notifications 7. To perform operations on an ESB service, right click on it, then select Operations: Operation Description Start Stop Abort Starts the ESB service. Stops the ESB service. Aborts the ESB service. For more information on ESB container and ESB service lifecycle operations, see the Aurea Sonic Workbench User Guide in the Sonic Workbench online help. Monitoring Service Metrics and Notifications All ESB services deployed in an ESB container support standard metrics, alerts, and notifications. Sonic ESB metrics and alerts can be enabled at configuration time or runtime. Sonic ESB notifications are set only at runtime. See the chapter Monitoring the Sonic Management Environment in thesonicmq Configuration and Management Guide for an extensive discussion of all the features that set, gather, and visualize metrics, alerts, and notifications. This section presents the settable metrics and notifications on an ESB Container. Metrics Sonic s metrics and alerts can be enabled at configuration time or runtime. Metric and alert enablement at runtime will not persist across container or component restarts. esb.connect.requests Metrics Note: As these are metrics specific to Sonic Connect services, they are settable on the SMC s Configure tab, but will be available on the Runtime tab only if the ESB Container contains a Sonic Connect service. The esb.connect.requests.* metrics include: Metric Average Processing Time Faulted Received Description Records the average time (in ms) it has taken to process a message. This measures the time for the service instance to return from a call to service. Count of requests that result in a fault. Count of requests received that is, the number of times service has been invoked on the service instance. Aurea Software, Inc. Confidential 63 Copyright 2013 Aurea, Inc.

64 Chapter 2: ESB Containers Metric ReceivedPerHour ReceivedPerMinute ReceivedPerSecond Description Records the rate per hour at which this service has been invoked over the collection interval. Records the rate per minute at which this service has been invoked over the collection interval. Records the rate per second at which this service has been invoked over the collection interval. esb.service.messages Metrics The esb.service.messages.* metrics include: Metric Average Processing Time Faulted Received Received IntraContainer ReceivedPerHour ReceivedPerMinute ReceivedPerSecond Rejected Description Records the average time (in ms) it has taken to process a message. This measures the time for the service instance to return from a call to service; it does not account for processing time before the ESB framework passes the message to the service instance, or processing time after the service instance has returned control to the ESB framework. This metric supports both high and low threshold alerts. Count of requests that produced faults. This metric does not record the actual number of fault messages produced, as in some cases a single invocation can result in many fault messages. Count of requests received that is, the number of times service has been invoked on the service instance. This metric includes any messages received intracontainer, through dynamically registered entry endpoints, and so on. Count of requests received intracontainer. Records the rate per hour at which this service has been invoked over the collection interval. This metric supports both high and low threshold alerts. Records the rate per minute at which this service has been invoked over the collection interval. This metric supports both high and low threshold alerts. Records the rate per second at which this service has been invoked over the collection interval. This metric supports both high and low threshold alerts. Count of requests that were rejected by the service instance. Aurea Software, Inc. Confidential 64 Copyright 2013 Aurea, Inc.

65 Monitoring Service Metrics and Notifications Metric SentToOutbox SentWithDispatch Description Count of messages sent to the service outbox. A single message received may result in zero, one, or many messages in the outbox. Count of messages sent using XQDispatch.dispatch. esb.service.listeners Metrics The esb.service.listeners.* metrics include: Metric RefreshIntervalMaxActive Description Measures the highest number of listeners active within the refresh interval. This metric can be used to detect spikes. For initial sizing, the listener count can be kept high to identify how many threads are used during testing. In an environment where you do not want a request to block waiting for a listener, this metric can be used to raise an alert if a high number of listeners are in use at one time, regardless of the overall usage for that interval. Usage AverageUsage Percentage metric measuring the used capacity over the refresh interval. Measures the average percentile usage over the collection interval. esb.service.concurrency Metrics The esb.service.concurrency.* metrics include: Metric RefreshIntervalMaxActive Usage AverageUsage Description Measures the highest number of concurrent service requests active within the refresh interval. Percentage metric measuring the used capacity over the refresh interval. Measures the average percentile usage over the collection interval. Aurea Software, Inc. Confidential 65 Copyright 2013 Aurea, Inc.

66 Chapter 2: ESB Containers FileDrop Metrics Note: As these are metrics specific to Sonic File services, they are settable on the SMC s Configure tab, but will be available on the Runtime tab only if the ESB Container contains Sonic File services. The FileDrop.* metrics include: Metric FailedFileDropCount FileDropCount Description Count of file drops that failed. Count of file drops. FilePickup Metrics Note: As these are metrics specific to Sonic File services, they are settable on the SMC s Configure tab, but will be available on the Runtime tab only if the ESB Container contains Sonic File services. The FilePickup.* metrics include: Metric FailedFilePickupCount FilePickupCount Description Count of file pickups that failed. Count of file pickups. To enable a service metric: 1. Open the Sonic Management Console, and connect to the domain you are managing. 2. Choose: Aurea Software, Inc. Confidential 66 Copyright 2013 Aurea, Inc.

67 Monitoring Service Metrics and Notifications To specify persistent settings, select the Configure tab, choose the management container that host the ESB Container you want, then right-click that ESB Container as a component, and choose Metrics, as illustrated: To specify temporary or override settings, select the Manage tab, choose the management container that host the ESB Container you want, then right-click that ESB Container as a component, and choose Metrics, as illustrated: 3. Right-click on the ESB container and select Metrics... The Monitoring dialog box opens with its Metrics tab: Aurea Software, Inc. Confidential 67 Copyright 2013 Aurea, Inc.

68 Chapter 2: ESB Containers 4. Select one metric or a group of metrics (by selecting the parent folder) and select Enable. The Sonic Management Console enables the metrics you selected, for example, the entire group of message metrics: If you select an individual metric, more options become available. You can disable the metric or watch the metric in a Metrics Watcher window as a bar chart or line graph. Standard Notifications Notifications are associated with the delivery of event information. The ESB Container registers service notifications with the management container. The Sonic Management Console subscribes to notifications and can display notifications in a WATCH window. The following standard service notifications are supported: Service started successfully Service failed to start Service stopped successfully Service failed to stop Service aborted To monitor notifications: 1. Open the Sonic Management Console and select the Manage tab. Aurea Software, Inc. Confidential 68 Copyright 2013 Aurea, Inc.

69 Monitoring Service Metrics and Notifications 2. Select a running ESB Container, right-click on the container, and select Notifications.... The Monitoring dialog box opens with its Notifications tab: 3. You can select one or more notifications, and for each notification, select Watch and select whether to watch: By Component (ESB Container) By Container (management container) By Domain The Sonic Management Console marks notifications that are being watched with a spyglass over its regular icon, as shown for watching Started, Stopped, and Online: Aurea Software, Inc. Confidential 69 Copyright 2013 Aurea, Inc.

70 Chapter 2: ESB Containers Select the watch level you want to view in the dropdown menu on the upper left of the window, as shown: The Sonic Management Console opens a Notification Watcher window within the Sonic Management Console. For information on setting metrics using instances, patterns, and groups, as well as general information on metrics, see the chapter Monitoring the Sonic Management Environment in thesonicmq Configuration and Management Guide See also the Aurea SonicMQ Administrative Programming Guide and the Aurea Sonic Event Monitor User s Guide documentation for information on other options for tracking these notifications. Enabling Integration with Actional for Visualization An ESB Container can integrate with Actional, the enterprise-class management and runtime governance solution that enables users to secure, govern and manage Web services and SOA processes from end to end. Actional gathers message data and enforces policy as messages flow through the Services Network, dynamically mapping each and every transaction. Aurea Software, Inc. Confidential 70 Copyright 2013 Aurea, Inc.

71 Enabling Integration with Actional for Visualization The Actional Agent is a separately licensed component in the Actional product family. The Actional Agent software includes interceptors (included in an ESB installation) and the standalone Analyzer which must be installed separately. The interceptor monitors traffic flowing through the ESB, while the Analyzer collects information from the interceptor and forwards statistical information to an instance of the Looking Glass Server (also available separately). The Actional Agent can analyze Web service and JMS traffic on the Enterprise Service Bus. When you enable Actional s interceptor technology on existing ESB infrastructures, the Analyzer lets you gather data from this interceptor and communicate with an instance of Actional Server. The Actional ESB Interceptor is included in an ESB installation; however, it is not enabled by default. To use the Actional Agent to manage ESB services and processes, connect the Sonic Management Console to a Sonic domain you want to instrument, and then select the option to Enable Actional Instrumentation on each ESB Container you want to enable, as shown: To activate an enabled interceptor requires that the Actional Agent is installed and running, and that the Agent node is under management by an Actional Server. If the Actional Agent is not running before the instrumented Sonic ESB Containers are started, you must restart the enabled Sonic ESB Containers to activate the Actional visualization feature. Important: If the Actional Agent is installed with a non-default \link directory (the directory where the Actional Agent creates Uplink.cfg), you must specify the path to the link directory as a Java system property on the Environment tab of each management container s properties with the Variable name com.actional.lg.interceptor.config and, for the Value, the complete path, such as usr1/auser/actional/actionalagent/lg.interceptor. Note: When using Actional to view an ESB process that makes a SOAP web service call, the display might not be correct if that web service is running on a machine which is under Actional management. The process and the remote web service might appear to be disconnected. To view these interactions properly, remove the web service from management through the Actional Server administration interface. Web services that are running on unmanaged Actional nodes are not affected by this and render correctly. See for more information. The Instrumenting Sonic ESB chapter in the Actional Interceptor Guide in the Actional Agent documentation set provides details and illustrations of this feature. Aurea Software, Inc. Confidential 71 Copyright 2013 Aurea, Inc.

72 Chapter 2: ESB Containers Logging and Tracing You can turn debug tracing on and off for ESB Containers and specify logging categories to send messages to the container s message log. The following procedures describe how to specify logging and tracing and how to make the settings permanent. For more information on logging and tracing, see the Managing Containers and Collections chapter in the Aurea SonicMQ Configuration and Management Guide. To specify logging and tracing for an ESB Container: 1. In the Sonic Management Console, select the Manage tab and select the management container that hosts the ESB Container. 2. Right-click on the ESB Container and select Properties. 3. The identity and status of the ESB Container is displayed: 4. Select the Tracing tab and then select tracing bit masks. In this example, Verbose, Set Attributes, and Enable Debug Messages are selected. These settings include: Aurea Software, Inc. Confidential 72 Copyright 2013 Aurea, Inc.

73 Logging and Tracing Enable Debug Messages (16) Enables application code to generate log output ESB Invocation Script Tracing (64) Logs generic script engine events Message Dispatch Tracing (128) Traces in, out, and fault messages JMS Endpoint Tracing (256) Traces events related to endpoint creation and usage ESB Container Tracing (512) Traces ESB Container-specific events, for example, lifecycle events 5. Click OK to apply the settings. Setting tracing on the running container sets it only for the current execution of the container. Restarting the container resets the tracing selections to their standard configuration values. The following procedure describes how to set standard configuration values so that the tracing options are set whenever the ESB Container starts. Important: While tracing provides valuable information, the logs grow faster than usual when tracing settings are always active. Try some tracing settings and observe the amount of data that they add to the logs. Then, try to reserve verbose settings to debugging activities only. To make logging and tracing for an ESB Container permanent: 1. On the Configure tab in the Sonic Management Console, select the management container that hosts the ESB Container on which you want to maintain logging and tracing. 2. In the right panel, right-click on the ESB Container, and then select Properties. 3. In the Edit Container Component Properties dialog box, enter the sum of the integer values for each tracing bit you want to set, as specified in the Edit Sonic ESB Container Properties dialog box. In this example, Verbose (1), Set Attributes (2), and Enable Debug Messages(16) are intended so the sum of , 19 is entered as the Tracing Mask value as shown: These tracing bits are set in the runtime whenever this container starts. Aurea Software, Inc. Confidential 73 Copyright 2013 Aurea, Inc.

74 Chapter 2: ESB Containers 4. Click OK to apply the setting. The changed value is immediately applied to the runtime settings. Note: Tracing options are also available on the management container as temporary runtime overrides and standard settings that are re-established when the management container restarts. Using Activation Daemons Using an Activation Daemon is a way to launch new containers as spawned processes of the container hosting the Activation Daemon. This allows new containers to be launched by remote administrative clients without the administrator having to log on to that host. A typical use would be to have the container hosting the Activation Daemon launched as a Windows service on Windows platforms or a startup process under UNIX. An Activation Daemon monitors the health of its spawned containers and, depending on configured rules, restarts those containers upon failure. Normally, one Activation Daemon is deployed per host. Multiple Activation Daemons can be created per domain. Containers can be launched by the Activation Daemon: At Activation Daemon startup time At a configured time After a container failure (up to a configurable number of retries) On demand from the Sonic Management Console or through the Activation Daemon s management API (see the Using the Runtime API for the Sonic Management Environment chapter in the Aurea SonicMQ Administrative Programming Guide) This section demonstrates how to create and configure an Activation Daemon to start an ESB Container. As an example, the procedures describe how to create an Activation Daemon to automatically start the Service5 container when the Activation Daemon s container starts. See the Configuring Framework Components chapter in the Aurea SonicMQ Configuration and Management Guide for detailed information on using Activation Daemons. The steps required to create, configure, and test the Activation Daemon are: 1. Creating an Activation Daemon on page Adding an Activation Daemon to a Management Container on page Adding an ESB Container to an Activation Daemon s Activation List on page 77 Aurea Software, Inc. Confidential 74 Copyright 2013 Aurea, Inc.

75 Using Activation Daemons Creating an Activation Daemon Create an Activation Daemon from the Sonic Management Console, as shown in the following procedure. As an example, this procedure creates AD_FOR_SERVICES. To create an Activation Daemon: 1. Start the domain manager where you want to manage the configurations. 2. Start the Sonic Management Console, and then connect to the domain manager. See Overview on page 24 for instructions. 3. In the Sonic Management Console s Configure tab, right-click the folder where you want to create the new configurations. For this example, choose Containers. 4. Right-click on the folder, and then choose New > Configuration > Sonic Management Environment > Activation Daemon. For this example, name it AD_for_Services. The New Activation Daemon dialog box opens. 5. Specify the name of the Activation Daemon in the Name field. 6. Click OK. Adding an Activation Daemon to a Management Container The following procedure shows how to add an Activation Daemon to a management container. Typically, an Activation Daemon hosts the Activation Daemon in a management container of its own and to assign other management containers to the Activation Daemon s activation list (which will, in turn, start their hosted components. (See Using Activation Daemons in the Aurea Sonic Installation and Upgrade Guide for an illustration.) As an example, this procedure adds a new Activation Daemon named AD_Services to a new management container. When the management container starts, it will start this Activation Daemon, and the daemon will launch its hosted components. Aurea Software, Inc. Confidential 75 Copyright 2013 Aurea, Inc.

76 Chapter 2: ESB Containers To add an activation daemon to a management container: 1. In the Sonic Management Console s Configure tab, right-click the folder where you want to create the new configurations. For this example, choose Containers. 2. Choose New > Configuration > Shortcut to Container. For this example, name the container AD_for_Services_on_myHost. Adjust the connection URL and the username and password for management communications in the domain. 3. Right-click on the container you created, and select Add Component. In the New Container Component dialog box s General tab specify: Property Name Component Auto Start Tracing Mask Description The name of the component you want to add to the container. For this example, enter AD_for_Services. Click... to open the Choose Component dialog box. For this example, choose /Containers/AD_for_Services. Specifies whether to automatically start the component when the hosting container starts. For this example, check Auto Start. Enter the tracing mask integer for this component. For this example, the New Container Component dialog box should look like this: 4. Click OK to add the component to the container. Aurea Software, Inc. Confidential 76 Copyright 2013 Aurea, Inc.

77 Using Activation Daemons Adding an ESB Container to an Activation Daemon s Activation List The following procedure describes how to add a management container that hosts an ESB Container an Activation Daemon s activation list. As an example, this procedure adds the SERVICE5 management container which hosts an ESB Container of the same name. To add an ESB Container to an Activation Daemon s activation list: 1. In the Sonic Management Console s Configure tab, navigate to the Activation Daemon you created, then right-click on it. 2. Choose Add Container to Activation List. 3. Under the General tab, specify the following properties: Property Container Number of Retries Retry Interval Description Name of the container to associate with the Activation Daemon. For this example, select... then select Containers\Service5 Container and click OK. Number of times the ESB Container Activation Daemon should attempt to restart the spawned container. For this example, use the value 4 instead of the default value, 0. Number of seconds between attempts by the Activation Daemon to restart the spawned container. For this example, use the value 15 instead of the default value, 0. For this example, your Add Container to Activation List dialog box looks like this: 4. Click OK. The Sonic Management Console associates the Activation Daemon with the container you selected. In this example, Service5 Container is added to the list of management containers for AD_for_Services and will try to start four times at fifteen second intervals. Aurea Software, Inc. Confidential 77 Copyright 2013 Aurea, Inc.

78 Chapter 2: ESB Containers Note: Setting JVM System Properties on a Management Container You can maintainthe JVM system properties for a management container that is on an Activation Daemon s activation list by using the Sonic Management Console to open the management container s Properties, and then choosing the Environment tab. For example to specify the JNDI Initial Naming Context, specify the JVM system property java.naming.factory.initial and set it to the value com.sonicsw.xqimpl.jndi.spi.xqtnscontextfactory Additional classpath settings are also set in the management container configuration. For more information on management containers and their environment settings, see the Configuring Containers and Collections chapter in the Aurea SonicMQ Configuration and Management Guide. Aurea Software, Inc. Confidential 78 Copyright 2013 Aurea, Inc.

79 ESB Endpoints and Connections 3 This chapter first references to endpoints and ESB addresses, and then shows how they are configured. Then connections are presented and shows how they are configured. The chapter contains the following sections: Overview on page 80 ESB Addresses and References to Endpoints on page 81 Evaluating Endpoint Requirements on JMS Destinations on page 84 Configuring Aura SonicMQ Endpoints on page 89 Fault Tolerant Connections and Reconnection on page 94 Configuring Connections on page 97 Deleting Aura SonicMQ Connections on page 103 Note: In the development environment, the Sonic Workbench handles the creation of endpoints and connections. For more information, see the Progress Sonic Workbench User Guide in the Eclipse help. Aurea Software, Inc. Confidential 79 Copyright 2013 Aurea, Inc.

80 Chapter 3: ESB Endpoints and Connections Overview ESB endpoints and connections enable communication among services. Endpoints are destinations where ESB services send and receive messages. The definition of an endpoint includes its connection, the URL address where the destination resides. An application accesses a service by sending a request to the service s entry endpoint. Aurea Sonic ESB endpoints include Java Messaging Service (JMS) destinations queues and topics that are accessed through connections to SonicMQ messaging brokers. Endpoints provide queuing and persistence between services. This persistence allows an ESB process to be fault-tolerant and provides an overall Quality of Service (QoS) that can guarantee processing in case of provider failure. Endpoints are defined by three sets of properties: Name A globally unique name for accessing the endpoint Connection The logical connection that instantiates the endpoint Parameters The specific parameters within the logical connection that distinguish the endpoint (for example, the name of a Aura SonicMQ queue or topic) The following view of an endpoint in the ESB Configured Objects section of the Sonic Management Console shows some of the properties: Note: Information for service developers Aurea Sonic ESB uses endpoints when it creates listeners for a service Inbox, or when it delivers messages from the Outbox. However, as a service developer, you can also send messages directly to an endpoint from inside a service: To send messages as the output of the service, you simply place the message in the service s Outbox with the appropriate address. Aurea Software, Inc. Confidential 80 Copyright 2013 Aurea, Inc.

81 ESB Addresses and References to Endpoints To send messages synchronously (to wait for a reply on a temporary JMSReplyTo destination), use the call( ) method on the endpoint. To send messages asynchronously, use the XQDispatch. ESB Addresses and References to Endpoints When ESB services and ESB processes are configured, they are associated with an endpoint that is used to receive messages (the entry endpoint). When messages are delivered to a service (by the dispatcher), the message is placed in an envelope with an address. An address is a generic term for ESB processes, services, or endpoints that can serve as destinations for a service or process exit, fault, or regular message endpoint. There is also a special REPLY_TO address for services configured as Request/Reply. If the message sender is a service, the address is interpreted as an endpoint. Messages can be sent directly to a ESB process or service (as well as to the endpoint itself). ESB addresses include: Endpoints A specific destination on a defined connection. ESB processes Specifies binding to defined endpoints in their definition. That endpoint is used in their first step (bypassing the entry endpoint) Services Specifies binding to a defined entry endpoint of the service, or the service itself when intra-container messaging is in use. When you define a service or ESB process or adapt a service or ESB process to a target domain, you specify four categories of ESB addresses: entry, exit, fault, and rejected message. The following sections discuss each of these categories. Entry Endpoint An entry endpoint always uses an endpoint address, a destination associated with an underlying JMS topic or queue used as the entry into an ESB process or service. You can use intra-container messaging to bypass the entry endpoint if the caller is in the same container (see ESB Container Intra-container Messaging on page 52). Services that must be accessed from remote JMS or HTTP clients or from itineraries that start in other containers should have a JMS-capable entry endpoint. Exit Endpoint An exit endpoint can be any type of ESB address (or list of addresses.) It is the configured last destination of an ESB process or service. The exit endpoint is typically configured as REPLY_TO, a specially named endpoint that uses as the reply to destination name set on the message that started the service operation or ESB process. The exit endpoint setting can be overridden by an ESB process. Aurea Software, Inc. Confidential 81 Copyright 2013 Aurea, Inc.

82 Chapter 3: ESB Endpoints and Connections Fault Endpoint A fault endpoint can be any type of ESB address. It is an endpoint to which application messages with recoverable errors are sent. Messages are sent to the fault endpoint if requested by the service. Each service can have an optional fault endpoint for those messages it cannot handle. The service decides which messages are sent to the fault endpoint as part of normal processing. The fault endpoint can contain any valid message The fault endpoint handles recoverable processing errors (for example, an out-of-stock notice), and interruptions in the normal process that must be handled at the application level. The fault endpoint inherits the Quality of Service (QoS) settings of the service application or ESB process. The fault endpoint is often set as an address to another service or ESB process. It might also be an endpoint (Aura SonicMQ destination) or a REPLY_TO destination. Rejected Message Endpoint The rejected message endpoint (RME) can be any valid XQAddress object including, an endpoint, a service, and an ESB process. It handles messages that are an invalid type for the process, messages that throw exceptions in the service() method of the service, and messages that failed to send to their Fault or Outbox addresses. Messages that cannot be processed are sent to the RME in the event of processing failures. This provides a similar function to the SonicMQ Dead Message Queue (DMQ). Every service can have an RME. Messages that cannot be processed are always sent to the RME in the event of processing failures. The messages are sent to the RME by the services framework, not directly by the services. The RME handles: Messages that throw exceptions in the service( ) method of the service Messages that were in the services Fault box or Outbox, but which could not be delivered (for example, the queue underlying the ESB endpoint does not exist.) When a message is sent to a rejected message endpoint, it is sent as a multipart message. The first part provides information about the rejected message, and the balance of the messages is the original message. If the original rejected message was itself a multipart message, the first part is the information section and the other parts follow it in the same sequence as the original message parts. The first part is a text/xml message with three sections: rejectedcode A String identifier pointing to the reason for rejection (a list of rejected codes is available in com.sonicsw.xq.errorcodes) rejectedlocation The location of the failure; it can have these optional attributes: Aurea Software, Inc. Confidential 82 Copyright 2013 Aurea, Inc.

83 ESB Addresses and References to Endpoints locationname The name of the computer where the rejection occurred containername The name of the ESB Container that rejected the message servicename The name of the service that rejected the message processname The name of the ESB process that was performing the action stepname The name of the process step at which the message was rejected rejectedstring Details of the failure, including a stack trace of the failure or exceptions causing the rejected message Rejected Message Behavior Under Failure Conditions This section describes the behavior of the process framework under various failure conditions. Where appropriate, the com.sonicsw.xq.errorcode value is provided (the value of the <rejectedcode>xxxx</rejectedcode> element of the rejectedmessageinfo message). A service should handle all generated exceptions itself. Normal service exit occurs through the Outbox. All exception cases are handled by the Fault box. Abnormal behavior is handled by the dispatcher using the RME. If the service( ) method throws any exception or error (anything throwable, either java.lang.runtimeexception or an XQServiceException), the original message is sent to the RME. The rejectedmessageinfo\rejectedstring is the stack trace of linked exceptions: rejectedcode = XQ_SERVICE_EXCEPTION Any processing error that occurs in the dispatcher before the message is delivered to the service( ) method invokes the same RejectedMessageEndpoint behavior. The rejectedmessageinfo is the stack trace of linked exceptions: rejectedcode = MESSAGE_RECEIPT_FAILURE When a QoS discrepancy occurs in the dispatcher between the QoS of the entry endpoint and the QoS of the ESB process using it, the rejectedmessageinfo contains the intended QoS: rejectedcode = PROCESS_QOS_UNSUPPORTED_AT_ENDPOINT An error outside the service( ) method, delivering Inbox or Outbox messages, is also sent to the RME. The following scenarios result in rejected message processing: If the address on an XQMessage in the Outbox or Fault box is invalid or empty: rejectedcode = SEND_NULL_ADDRESS If there is an error sending a message returned from the XQEndpoint.send( ) method: rejectedcode = XQ_ENDPOINT_EXCEPTION Aurea Software, Inc. Confidential 83 Copyright 2013 Aurea, Inc.

84 Chapter 3: ESB Endpoints and Connections If some other error occurs in the dispatcher processing the message: rejectedcode = MESSAGE_SEND_FAILURE Time to live for an ESB process is checked when the message arrives at the service. If the current time by the local system clock (measured in GMT) is greater than the ESB process entry timestamp plus timetolive, the RME is used: rejectedcode = TIME_TO_LIVE_EXPIRED Messages sent to the RME have the same QoS as the service from which they are rejected. Evaluating Endpoint Requirements on JMS Destinations When configuring JMS destinations for your applications, there are several factors to consider as you prepare to configure the domain. The abstraction of ESB services and processes from the specifics of the domain architecture make promotion of artifacts through a series of stages or across various domains a fundamental task reserved for the deployment manager rather than the developer. Factors such estimated traffic volumes, available computing resources, the service level requirements, the topology of the resources these all contribute to the overall design of the systems that broker the endpoints. Will you run multiple instances of a service for scalability and reliability? If so, use queues, or topics with shared subscriptions. Normal topic subscriptions broadcast a copy of all messages to each service instance. See Using Shared Subscriptions to Topics on page 86. What quality of service (QoS) is required? For EXACTLY_ONCE or AT_LEAST_ONCE QoS, messages can be sent PERSISTENT, and topic subscribers should be durable. See Using Concurrent Durable Subscriptions to Topics on page 86. Are the destinations queues or topics? If other applications are already sending to a destination, you cannot change that destination. If other applications are listening on the same destinations, you must use topics. See When to Use Topics, When to Use Queues on page 85. Does your deployment architecture have multiple brokers, clusters, or nodes? When using queues, decide whether they should be global and/or clustered. When using topics, decide whether they should be shared. See Multiple Brokers, Clusters, and Nodes on page 87. The recommended best practice for configuring JMS destinations is to use concurrent durable subscriptions, which provide durability, scalability, and the ability to monitor your applications. Aurea Software, Inc. Confidential 84 Copyright 2013 Aurea, Inc.

85 Evaluating Endpoint Requirements on JMS Destinations Note: In the Sonic development environment, endpoints are, by default, configured as nonpersistent topics in the underlying SonicMQ domain. That helps ensure that a run or test of a project does not interfere with subsequent runs after some services have failed or became unavailable. Table 1 maps the destination configurations to destination requirements. Table 1: QoS Mapping Destination Requirements Destination Type Multiple Services Single Service Instances AT_LEAST_ONCE or EXACTLY_ONCE Topic Concurrent durable subscription = true Shared subscriptions = true Number of listeners = any number Durable subscription name must be non-null Queue No additional configuration required Concurrent durable subscription = false Shared subscriptions = false Number of listeners = 1 Durable subscription name must be non-null No additional configuration required BEST_EFFORT Topic Concurrent durable subscription = true Shared subscriptions = true Number of listeners = any number Durable subscription name must be null Queue No additional configuration required Concurrent durable subscription = false Shared subscriptions = false Number of listeners = 1 Durable subscription name must be null No additional configuration required When to Use Topics, When to Use Queues When deciding whether to use queues or topics in your applications, consider that the underlying Aura SonicMQ layer provides some queue-like behavior for topics. The shared subscription feature enables you to have persistent, load balanced topic subscribers in your applications, while still allowing other subscribers on the topics. If you use topics, other services can receive and process messages without interfering with message flow through a process. Using this implementation, you can monitor business activity with a monitoring service subscribed to one topic, while message flow continues uninterrupted through a service subscribed to a different topic. This implementation is also useful in debugging and testing your applications and processes. Aurea Software, Inc. Confidential 85 Copyright 2013 Aurea, Inc.

86 Chapter 3: ESB Endpoints and Connections See the Aurea SonicMQ Application Programming Guide for a detailed discussion of the features and benefits of using queues or topics in your applications. If you use topics, there are other considerations in defining the endpoints that relate to the number of service instances and the QoS. The following sections describe implementing concurrent durable subscriptions and shared subscriptions on topics in Sonic ESB. Using Shared Subscriptions to Topics With topic subscriptions there can be cases where one application acting as a topic subscriber cannot process messages as fast as messages are being published. This leads to a bottleneck, where the subscribing application falls farther and farther behind. You can establish groups of topic subscribers that share subscriptions to allocate the message load among them. Within these groups, each message is delivered to, and consumed by, only one member of the group. These group members can be located on dispersed computers over diverse JMS connections. The implementation is compatible with clusters of brokers so that the members of a consumer group can connect to different brokers in a SonicMQ cluster. Regular subscribers, durable subscribers, and participants in a shared subscription can be active concurrently on a broker. Sonic ESB prepends the service name to the topic name when defining subscribers within a group: [[ServiceName]]topicName. When you select a destination for a shared subscription, Sonic ESB automatically prepends the service name to the topic you select (if shared subscriptions are enabled for the service, which is the default condition). For detailed information on implementing shared subscriptions, see the Publish and Subscribe Messaging chapter in the Aurea SonicMQ Application Programming Guide. Using Concurrent Durable Subscriptions to Topics You can configure the entry endpoint of a service to define a durable subscription to a topic. In Sonic ESB, multiple service instances can concurrently process messages sent to a durable subscription. Durable subscriptions are created using a unique prefix appended to the subscription name configured on the JMS endpoint. The unique prefix consists of the management container name, the name of the ESB service configuration (the service name), and the ID of the message listener. The Concurrent Durable Subscription setting on an endpoint is a boolean value: When set to False, the number of listeners to is limited to one. Also, only one instance of the service can be running anywhere in your ESB. This setting is preferred if you care about guaranteeing order in processing. The effect is similar to setting Exclusive on a queue. When set to True, the default value, multiple containers are allowed to run the service, and each of those containers can have multiple listeners. This setting is appropriate when you want to load-balance and scale processing, and are not concerned about order in processing. Aurea Software, Inc. Confidential 86 Copyright 2013 Aurea, Inc.

87 Evaluating Endpoint Requirements on JMS Destinations For detailed information on implementing durable subscriptions, see the Publish and Subscribe Messaging chapter in the Aurea SonicMQ Application Programming Guide. The following example illustrates Sonic ESB s naming convention for this feature: A service named Service1 is deployed in MFContainer1 and MFContainer2. Service1 has: Two listeners in MFContainer1 One listener in MFContainer2 The subscription name is mydurablesub The topic that is subscribed to mydurablesub is T1 These services share a subscription to the topic name [[Service1]]T1 (concurrent durable subscriptions in Sonic ESB have shared subscriptions enabled by default) The dynamically generated subscription names are: MFContainer1:Service1:1:myDurableSub MFContainer1:Service1:2:myDurableSub MFContainer2:Service1:1:myDurableSub Three durable subscriptions are created. Distribution to the durable subscriptions is based on factors including the number of active clients and flow control status. Each listener on a single service accesses the same, shared durable subscription, thus improving the throughput of a deployed service instance by enabling concurrent message processing. When a listener is eliminated, its durable subscription is not automatically eliminated, which causes that durable subscription to remain inactive until the subscriber returns. Note: In conjunction with the shared subscription functionality, messages for a shared durable subscription that might be stranded in these now-defunct subscriptions are re-allocated to whichever shared subscribers are connected, whether durable or nondurable. There is an advantage to using only durable subscribers in a shared subscription as a failure of a regular subscriber without acknowledgement of a delivered message has no mechanism for restarting and re-allocating the in doubt message. Multiple Brokers, Clusters, and Nodes The ability to access services over the underlying SonicMQ messaging layer is an important consideration when a Aurea Sonic ESB service calls out to other services and expects a reply, or when a Aurea Sonic ESB process connects many ESB services. Sonic s Dynamic Routing Architecture (DRA) is a robust, secure way to send messages through a broker or cluster of brokers to a destination on another broker or cluster. (In routing, each broker or cluster is a routing node. For more information on DRA, clusters, and routing nodes, see the Multiple Nodes and Dynamic Routing and Clustered Brokers chapters in the Aurea SonicMQ Deployment Guide.) Aurea Software, Inc. Confidential 87 Copyright 2013 Aurea, Inc.

88 Chapter 3: ESB Endpoints and Connections In multi-node domains, Aurea Sonic ESB uses DRA to make fewer direct connections to remote nodes by using the ESB (JMS) connection and DRA routes to send to remote nodes. (Every ESB Container has an ESB (JMS) connection. See Creating ESB Containers on page 50 for information on specifying the ESB Container connection.) When a message is sent to a node-qualified destination, the ESB (JMS) connection is used to send the message to the broker associated with the ESB Container on the bus. You configure an endpoint using a node-qualified queue or topic name to reference a queue or topic on a remote node to which the client (ESB service) is not connected. For example, you can configure the ESB (JMS) connection to NodeA (a routing node) and an endpoint based on queue, NodeB::Q2. Messages travel over the DRA connection of NodeA to NodeB. Aurea recommends using this node-qualified syntax as a best practice, as it avoids making new connections from an ESB Container to all the remote nodes. Aurea recommends using the node-qualified syntax even if you are not running over DRA doing so eases the transition if you decide to implement DRA in the future. The bus connection broker must have DRA routes defined for each of the remote nodes that can be sent to. If not, sent messages go to the broker s dead message queue (DMQ). Important: If the DRA connection fails, the message goes to the DMQ rather than to the rejected message endpoint (RME), provided the message is sent PERSISTENT and JMS_SonicMQ_preserveUndelivered and JMS_SonicMQ_notifyUndelivered are set to true (the Aurea Sonic ESB QoS is AT_LEAST_ONCE or EXACTLY_ONCE on the process.) For more information, see the Progress Sonic Workbench User Guide in the Eclipse help. The only time the bus connection is not used is when the node is sonic.http, an HTTP outbound routing node. In this case, the ESB Container s HTTP connection is used, as in outbound web service invocations. (For more information, see the Progress Sonic Workbench User Guide in the Eclipse help.) Table 2 lists JMS destinations for endpoints when using queues or topics in the same management domain. The table shows different configurations for brokers, clusters, and nodes used by entry endpoints of called or invoked services. Table 2: Destination Definition Conventions Within a Domain Deployment Queue Definition Topic Definition One broker Use non-clustered queues Use normal or shared topics One cluster, multiple brokers Multiple nodes with some nodes as clusters, some as brokers Use clustered queues Use global, clustered queues Use node-qualified entry endpoint names, for example, Node::aQueue Use normal or shared topics Use either: Node-qualified entry endpoint names, for example, Node::aTopic (shared subscriptions are not allowed) GSA and no overlapping topic names Aurea Software, Inc. Confidential 88 Copyright 2013 Aurea, Inc.

89 Configuring Aura SonicMQ Endpoints When choosing JMS destinations for queues, consider the following: For clustered brokers, you should use clustered queues For multiple nodes, you should use global queues and entry endpoints that are qualified by the node name When choosing JMS destinations for topics, consider the following: All topics are clustered and global For multiple nodes, either use node-qualified names for the entry endpoint or use global subscription architecture (GSA) and global subscription nodes. (For information on GSA, see the Multiple Nodes and Dynamic Routing chapter in the Aurea SonicMQ Deployment Guide. Configuring Aura SonicMQ Endpoints The following procedure describes how to view existing Aura SonicMQ endpoints and configure a Aura SonicMQ endpoint. To view and configure Aura SonicMQ endpoints: 1. In the ESB Configured Objects section of the Sonic Management Console, expand the Endpoints folder, then click Aura SonicMQ Endpoint. The right panel lists the available endpoints on the Endpoints tab. 2. Select an endpoint from the list. Aurea Software, Inc. Confidential 89 Copyright 2013 Aurea, Inc.

90 Chapter 3: ESB Endpoints and Connections The ESB Configured Objects section of the Sonic Management Console displays the properties of the selected endpoint, as shown: 3. Click New. The right panel clears the endpoint property fields in the Endpoint Maintenance area. Required properties in the Endpoint Maintenance and Init Parameters areas are marked with an asterisk (*). 4. Enter, accept, or select values for the following fields: Property Description Endpoint Name Connection Inherit ESB (JMS) Connection A unique name. You must define at least one connection for each endpoint type. (The Connections tab lists the currently defined connections. You can select one of the connections that ships with Aurea Sonic ESB, jms_defaultconnection or http_defaultconnection) Select the checkbox to enable the endpoint to inherit ESB (JMS) connection of the ESB container. When you select the checkbox, the Connection drop-down list is disabled. This property is useful when you share the endpoint with other developers. If you select the checkbox, the endpoint need not be linked to a physical ESB (JMS) connection. By default, the checkbox is unchecked. Aurea Software, Inc. Confidential 90 Copyright 2013 Aurea, Inc.

91 Configuring Aura SonicMQ Endpoints Property Quality of Service WSDL URL JMS Destination Type Destination Name Message Selector Select one: Best Effort The default. Messages are sent NON_PERSISTENT. There is no guarantee that a message will not be lost. However, messages can be duplicated. At Least Once Messages are sent PERSISTENT. Messages cannot be lost. However, some services might have some messages redelivered in the event of a system failure; others might not. Exactly Once The most reliable processing. Messages are sent PERSISTENT. Messages are not lost, and services do not receive duplicate messages. EXACTLY_ONCE is supported for endpoints that map to JMS destinations in either JMS domain as supported by JMS1.1 (topic or queue) on the same JMS connection. Optional (to associate an endpoint with a WSDL document that describes its interaction model). Enter the WSDL URL or click... to open the Choose WSDL File Resource dialog box and choose a WSDL file. Select Queue or Topic. Description The name of a Aura SonicMQ topic or queue. You can either enter the name of an existing destination in this field, or click New Queue... to create a new queue within a specified broker or cluster. (Topics cannot be created in this way.) When you click New Queue... the Create JMS Queue dialog box opens. Enter a meaningful, unique Queue Name, and select a broker or cluster from the Create In list, then click OK to create the queue in the named broker or cluster. For information on configuring queues, see the Configuring Queues chapter in the Aurea SonicMQ Configuration and Management Guide. See Using Shared Subscriptions to Topics on page 86 for information about destination names when using shared subscriptions on topics. Allows a consumer on the endpoint to filter and categorize messages in the message header and properties with expression strings created with a subset of SQL-92 semantics. This property is a java.lang.string that is evaluated left to right within precedence level. (This property is not validated here.) See the Message Producers and Consumers chapter in the Aurea SonicMQ Application Programming Guide for detailed information about message selectors and syntax. Aurea Software, Inc. Confidential 91 Copyright 2013 Aurea, Inc.

92 Chapter 3: ESB Endpoints and Connections Concurrent Durable Subscription Durable Subscription Name Priority Property Time to Live Message Prefetch Count Message Prefetch Threshold Description Specifies whether the endpoint has a concurrent durable subscription to its destination topic. This property ensures a unique subscription name so the topic can have multiple listeners (this property does not dictate whether the subscription is durable). This property is only relevant for topic-based endpoints. Multiple listeners in multiple service instances can subscribe to the same durable subscription. This setting is optional, either True or False; the default is True. Name of the Aura SonicMQ durable subscription. See Using Concurrent Durable Subscriptions to Topics on page 86 for information about durable subscription names. Optional. The priority at which Aura SonicMQ sends messages from this endpoint. Enter a numeric value from 1 to 9 or Inherited; the default is Inherited: Inherited The priority of messages sent from this endpoint is set to the value with which the message was received. New messages that are created and sent from this endpoint have a priority of 4. 1 to 9 All messages sent to this endpoint have a priority equal to that value. The lifetime of messages within Aura SonicMQ sent from this endpoint. This optional numeric value in milliseconds can be any positive integer: Setting the value to 0 retains the message indefinitely. Setting the value to an integer greater than 0 causes expired messages to be sent to the DMQ if the QoS of the entry endpoint is AT_LEAST_ONCE or EXACTLY_ONCE. (For more information on QoS, see Quality of Service on page 96.) Setting the value to an integer greater than 0 causes expired messages to be lost if the QoS of the entry endpoint is BEST_EFFORT. The number of messages the endpoint will consume in a single request from a Aura SonicMQ queue when the endpoint is used as an entry endpoint. This property is only relevant to queue-based endpoints. It is an optional numeric value; the default is 1. It can override the value specified in Aura SonicMQ. An optional numeric value to specify that when the number of messages waiting to be processed by the endpoint falls to, or below, this threshold, a new batch of messages will be fetched. This number cannot exceed the Message Prefetch Count. This property is only relevant for queue-based endpoints. Aurea Software, Inc. Confidential 92 Copyright 2013 Aurea, Inc.

93 Configuring Aura SonicMQ Endpoints Property Shared Subscriptions Flow To Disk Send Timeout Description Allows automatic load balancing (the default is True, enabling shared subscriptions). For more information on shared subscriptions, see Using Shared Subscriptions to Topics on page 86 and the Publish and Subscribe Messaging chapter in the Aurea SonicMQ Application Programming Guide. Specifies whether messages sent to this endpoint flow to disk. This feature allows messages to continue to flow when a subscriber to this endpoint is slower than the publisher and the buffer of the subscriber is full. Specify one of the following settings: USE_BROKER_SETTING No setting on the endpoint (the broker setting for this feature is used). The default setting is USE_BROKER_SETTING. ON All messages to this endpoint will flow to disk. OFF No messages to this endpoint will flow to disk. The time interval, in milliseconds, to attempt to send a message from this endpoint. The default value is minutes. If the timeout expires, a runtime or JMS exception could cause the message to get rejected. 5. After you configure the properties, click Apply. The Sonic Management Console displays the new endpoint in the Endpoints tab. (You can click Reset to restore the previously applied values before you click Apply.) If you click Undo, any changes made before the previous Apply are undone. The information reverts to its previous state and Redo becomes available. (Undo does not undo the last change unless Apply has been clicked.) Deleting Aura SonicMQ Endpoints The following procedure describes how to delete a Aura SonicMQ endpoint. To delete a Aura SonicMQ endpoint: 1. In the left panel in the Sonic Management Console, under the ESB Configured Objects node, expand the Endpoints folder and click Aura SonicMQ Endpoint. The upper right panel lists the endpoints in the Endpoints tab. 2. Select the endpoint you want to delete, and then click Delete. 3. Confirm the selection. Aurea Sonic ESB deletes the selected endpoint. Aurea Software, Inc. Confidential 93 Copyright 2013 Aurea, Inc.

94 Chapter 3: ESB Endpoints and Connections Fault Tolerant Connections and Reconnection Aurea Sonic ESB provides fault tolerant client connections that allow ESB services to become failure resistant when used in a replicated broker environment. Enabling fault tolerant connections allows your ESB services to recover connections without message loss or duplication in the following circumstances: Reconnect to the same broker if the connection is lost due to network failure Reconnect to the same broker through redundant network interfaces if the connection in lost due to network failure Reconnect to a broker that is configured as a backup broker if the primary broker fails Reconnect to a broker that crashes and recovers from the log if that broker is configured with full broker crash recovery The fault tolerant and reconnect properties you can set for a connection are: Connection Parameter faulttolerant Sonic Management Console Property Enable Fault Tolerant Connection Default Value False initialconnecttimeout Initial Connect Timeout 30 seconds faulttolerantreconnecttimeout Fault Tolerant Reconnect Timeout 60 seconds Inbound and Outbound Connections In Aurea Sonic ESB, connections are not created until needed. For inbound (entry endpoint) connections, the connection attempt starts (but does not finish) at service initialization time. For outbound (exit, fault, and rejected message endpoint (RME)) connections, the connection attempt starts when a service first sends a message over a given connection. As a result, two connections that have the same URL list might connect to different brokers in the list. Once a connection is created it can be re-used and can be shared across multiple sessions within the container. The maximum number of sessions that share a connection is configurable. Fault Tolerant Connections Set the faulttolerant connection parameter to true to enable fault tolerant connections. When enabled, SonicMQ fault tolerance occurs before the Aurea Sonic ESB reconnect logic is triggered. Only after the SonicMQ client fails to establish or re-establish a connection using the fault tolerance mechanism will the Aurea Sonic ESB reconnect process start. Aurea Software, Inc. Confidential 94 Copyright 2013 Aurea, Inc.

95 Fault Tolerant Connections and Reconnection To use fault tolerant connections, the broker to which a client connects should be configured, started, and sychronized as a replication broker or a fully crash recoverable broker (see Configuring Broker Replication in the Aurea SonicMQ Configuration and Management Guide and Achieving Continuous Availability in the Aurea SonicMQ Deployment Guide for information about using fault tolerant connections and replication brokers). Otherwise, only the transient network recovery or redundant network recovery feature can be used at runtime. Aurea recommends that a fault tolerant connection to a replicated broker should specify primary and backup broker URLs in the URL list. This ensures that both primary and backup URLs are tried for a successful initial connection. The Connection URL list is only used when creating the initial connection, not for fault tolerant reconnection attempts. Fault tolerant reconnection URLs are provided by the broker servicing the ESB Container at the time a disconnect occurs. See the Configuring Routings chapter in the Aurea SonicMQ Configuration and Management Guide for more information. Reconnection Aurea Sonic ESB endpoints appear as SonicMQ clients. From the perspective of SonicMQ, the ESB reconnect implementation is a customized client reconnect implementation. Aurea Sonic ESB always tries to reconnect when a connection fails, regardless of whether the faulttolerant connection parameter is set to true or false. The following sections explain how initial connections are created and how interrupted connections are reconnected. Initial Connections The initialconnecttimeout value specifies for how many seconds an ESB endpoint will try to establish an initial connection. This value is the total time during which the initial connection is attempted, not the time spent attempting to connect to each URL. This means that some URLs in the URL list might not be attempted. For non-fault tolerant connections, this parameter is ignored and the endpoint tries each URL once. Note: Two special timeout values, 0 and -1, are available in SonicMQ but are not available in Aurea Sonic ESB, where configurations are limited to a value range of If the SonicMQ initial connection cannot be established within the timeout period, the Aurea Sonic ESB reconnect logic will retry. This retry looks like the initial connection attempt to the SonicMQ implementation. The retry starts trying to establish connections again, starting with the first URL in the initial connection list. The Aurea Sonic ESB retry will continue until the container is shut down. Aurea Software, Inc. Confidential 95 Copyright 2013 Aurea, Inc.

96 Chapter 3: ESB Endpoints and Connections Interrupted Connections The faulttolerantreconnecttimeout value specifies how many seconds an ESB endpoint will allow for reconnecting a broken connection to the primary or backup broker using the fault tolerant mechanism. If the connection is re-established before the timeout expires, the endpoint will not be connected to a broker outside the original fault tolerant pair. If the connection is not re-established within the reconnect timeout period, SonicMQ signals that the connection failed and the Sonic ESB reconnect logic tries to create a new connection using the initial connection process described previously. In this case, it is possible that a connection can be established to a broker that is not a member of the original fault tolerant pair. The Aurea Sonic ESB reconnect logic continues to attempt to re-establish an interrupted connection until the container is shut down. After 20 retries, a delay is inserted between each retry. The delay increases with each retry to a maximum delay of 30 seconds. Each retry cycles through all the URLs in the connection URL list. Like the initialconnecttimeout value, the faulttolerantreconnecttimeout value is limited to a range of The faulttolerantreconnecttimeout value is ignored for non-fault tolerant connections; an interrupted non-fault tolerant connection will immediately trigger the Sonic ESB reconnect logic. Quality of Service In the case of an interrupted connection, the ESB reconnect creates a new connection and the connection state is lost. (In a fault tolerant connection, the state is preserved and the connection never appears interrupted). This behavior has the following impact on QoS: Best Effort Messages may be lost, no Fault or RME message is guaranteed. At Least Once If the connection is lost before a message is acknowledged, the acknowledgement fails, but messages already sent to the Outbox and Fault box are still processed. A copy of an incoming message that is not acknowledged is sent to the RME. The unacknowledged message is redelivered to the service (for queues), or to the durable subscription endpoints (for topics). Exactly Once If the connection is lost while a message is being processed, a copy of incoming message is sent to the RME. The message is redelivered to the service (for queues), or to the durable subscription endpoints (for topics). Messages sent to the Outbox and Fault box are not processed in this case. Setting the Ping Interval You can enable or disable sending active pings on a connection by setting the pinginterval connection property. When used where messages are sent to the endpoint at a low frequency, the ping can detect a connection drop and trigger reconnect logic to keep the connection alive. However, when large messages are sent on a slow network, a small ping interval can cause a response failure that can be interpreted as a connection drop. Aurea Software, Inc. Confidential 96 Copyright 2013 Aurea, Inc.

97 Configuring Connections Consider the size and frequency of messages that will be sent to the endpoint when setting this property: For non-fault tolerant connections, the default pinginterval value is 90 seconds. For fault tolerant connections, the default pinginterval value is 30 seconds. Ping interval behavior for fault tolerant connections differs from that of non-fault tolerant connections in that the ping does not require a response from the broker in fault tolerant connections. A lack of response from the broker does not result in a connection failure in this case. Configuring Connections Every endpoint has an associated connection. The following procedure describes how to view existing connections and configure a new connection. To view connections and configure a connection: 1. In the ESB Configured Objects section of the Sonic Management Console, expand the Endpoints folder, then select Aura SonicMQ Endpoint. 2. In the right panel, click the Connections tab to view available connections. Aurea Software, Inc. Confidential 97 Copyright 2013 Aurea, Inc.

98 Chapter 3: ESB Endpoints and Connections 3. Select a connection. The lower right panel displays the properties of the selected connection, as shown: 4. Click New. The connection property fields in the Connection Maintenance panel are cleared. Required properties are marked with an asterisk (*). 5. In the Connection Maintenance section, enter the following properties: Property Connection Name Connection Type A unique, meaningful name. Description Accept the required value, SonicMQ Connection. Aurea Software, Inc. Confidential 98 Copyright 2013 Aurea, Inc.

99 Configuring Connections 6. In the Init Parameters section, enter, accept, or select values for the following properties: a. Set the connection and authentication properties: Property Connection URLs Resolve Connection URLs User Name Password JNDI Entry Login SPI Classname Description Required. One or a comma-delimited list of URLs of Aura SonicMQ brokers on which to make connections (in the format [protocol://]hostname[:port]). When resolveconnectionurls() is called, the connection factory will attempt to communicate with the DS in order to resolve a "sonicrn:///". If successful, then the connection factory will update the resolvedconnectionurls property with the return value. If the ConnectionURLs property does not contain a "sonicrn:///" URL, then the method will simply result in the ConnectionURLs property value being copied to the ResolvedConnectionURLs property. The user name to authenticate with the Aura SonicMQ broker. The password to authenticate with the Aura SonicMQ broker. The lookup name of the ConnectionFactory in the JNDI store. Note: When you provide an entry for this parameter, it takes precedence over all other parameters except user name, password, connectid and SSL settings. You can pass the Login SPI classname to the SonicMQ connection factory. Optionally, you can pass the Login SPI classname to the SonicMQ connection factory. Aurea Software, Inc. Confidential 99 Copyright 2013 Aurea, Inc.

100 Chapter 3: ESB Endpoints and Connections b. Set the maximum sessions for this connection. These are all required parameters: Property Maximum Receive Sessions Per Connection Maximum BEST_EFFORT Sessions Maximum AT_LEAST_ON CE Sessions Maximum EXACTLY_ONC E Sessions Maximum Web Service Sessions Description When configuring a connection, you specify the number of sessions Aurea Sonic ESB creates on an underlying Aura SonicMQ connection for Aurea Sonic ESB entry endpoints: Unlimited The default for a single connection configuration. Aurea Sonic ESB creates one underlying SonicMQ connection. All Aura SonicMQ sessions that Aurea Sonic ESB creates for endpoints share that single connection. There is an unlimited number of receiving Aurea SonicMQ sessions per SonicMQ connection. Single Aurea Sonic ESB creates a dedicated Aura SonicMQ connection for each Aura SonicMQ session that it creates for endpoints. There is a single receiving Aura SonicMQ session per Aura SonicMQ connection. This setting provides enhanced performance, but results in greater memory and resource consumption throughput. The size of the pool of Aura SonicMQ sessions created for sending messages at a BEST_EFFORT QoS level. This number should grow as the number of listeners grows. Specify a numeric value. The default is 3. The size of the pool of Aura SonicMQ sessions created for sending messages at an AT_LEAST_ONCE QoS level. This number should grow as the number of listeners grows. Specify a numeric value. The default is 3. The size of the pool of Aura SonicMQ sessions created for sending messages at an EXACTLY_ONCE QoS level. This number should grow as the number of listeners grows. Specify a numeric value. The default is 3. The number of pooled sessions that can be used for Web service invocations. Specify a positive integer value. The default value is 10. Important: Sonic ESB creates a SonicMQ temporary destination for each pooled session at the time that each connection is created. Aurea Software, Inc. Confidential 100 Copyright 2013 Aurea, Inc.

101 Configuring Connections 7. Set the ping interval, timeout, and fault tolerant connection parameters: Property Ping Interval Description The interval in seconds for sending active pings on the connection. Specify a numeric value: The default for non-fault tolerant connections is 90. The default for fault tolerant connections is 30. A value of 0 or any negative number disables the ping. See Setting the Ping Interval on page 96 for more information. Enable Fault Tolerant Connection Initial Connect Timeout Fault Tolerant Reconnect Timeout JMS Connection ID Enable Load Balancing Monitor Interval Socket Connect Timeout Specifies whether to enable fault tolerant connections for the endpoint. This setting is optional, either True or False; the default is False. See Fault Tolerant Connections and Reconnection on page 94 for more information. The interval in seconds during which a client can try to establish an initial connection. Specify a numerical value; the default is 30 seconds. See Fault Tolerant Connections and Reconnection on page 94 for more information. The interval in seconds that a client will allow for reconnection. Specify a numerical value; the default is 60 seconds. See Fault Tolerant Connections and Reconnection on page 94 for more information. When a JMS Connection ID is entered ( a non-empty string), fault tolerant clients can reconnect to a broker before the broker s pending reconnect timeout is reached. However, taking advantage of this functionality will not allow multiple, simultaneous JMS connections using use the same JMS connection ID. See Fault Tolerant Connections and Reconnection on page 94 for more information. Select to enable the requested connection to be redirected for load balancing if necessary. If not selected, the requested connection cannot be redirected. When flow control blocking is sustained, an application producer session can be prevented from producing messages for a significant period of time; that time is the monitoring interval. The Flow Control Monitor Interval defines the duration of the monitoring interval as a non-negative integer number of seconds. A value of 0 indicates that flow control monitoring is disabled for all sessions on the connection. The default value is 60 seconds. Sets a timeout on the socket after a specified time interval. Enter the positive integer number of milliseconds before a connection attempt should time out. Setting the value to 0, the default value, means to never time out. See the chapter SonicMQ Connections in the Aurea SonicMQ Application Programming Guide for more information about this feature. Aurea Software, Inc. Confidential 101 Copyright 2013 Aurea, Inc.

102 Chapter 3: ESB Endpoints and Connections a. Set the Secure Socket Layer (SSL) properties. Set these properties only if you are using SSL: Property SSL CA Certificates Location SSL Certificate Chain File SSL Private Key File SSL Private Key Password SSL Certificate Chain Form SSL Cipher Suites SSL Provider Class Description Specifies the location of the Certificate Authority (CA) certificate used to connect to the Aura SonicMQ broker. Specifies the pathname that points to the file containing the Aura SonicMQ broker certificate chain for SSL. Provides the pathname that points to the file containing the broker-encrypted private key for SSL. Provides the password to encrypt the broker private key for SSL. Specifies the format of the file containing the broker certificate chain: PKCS7 PKCS12 LIST The value is a comma-delimited list of all cipher suites, in priority order, supported by the Aura SonicMQ broker connection. For broker-client communications the broker that initiates the connection negotiates to the highest-priority cipher suite they both support. The default is SSL_RSA_WITH_3DES_EDE_CBC_SHA. Specifies the Aura SonicMQ adapter class name of the SSL implementation. The supported adapters are: progress.message.net.ssl.jsse.jssesslimpl (the default) progress.message.net.ssl.jsafe.jsafesslimpl (when you are using RSA JSafe libraries)) Note: For information on the supported cipher suites, see Implementing Security in the Aurea SonicMQ Deployment Guide. Aurea Software, Inc. Confidential 102 Copyright 2013 Aurea, Inc.

103 Deleting Aura SonicMQ Connections b. Set the message compression and transaction parameters for the connection: Property Enable Compression Custom Compression Factory Default Txn Batch Size Client Transaction Buffer Size Max number of redeliveries Description When selected, requires connections that use this connection factory to perform message compression before sending messages, and requires the broker to deliver compressed messages to connections that use this connection factory. The setting could be overridden by the client. Specifies the custom class that defines message compression and decompression. Specifies an integer value for the common batch size. During a transaction, messages can be batched on the client for later submission when the transaction is committed or whenever the batch size or the session s ability to maintain the integrity of the transaction is at risk. Messages are batched for each destination within a session. When several destinations are used in a single transaction, messages are batched for each destination separately. (For more information, see the Transactions chapter in the Aurea SonicMQ Performance Tuning Guide.) Specifies the size, in bytes, that the client runtime is willing to buffer per transaction. If the buffer size is reached, JMS client sending threads will block until further messages are saved by the broker. The broker will apply a transaction buffer size that is the lesser of the client-specified value and the broker s Transactions: Buffer Size (which has a default setting of 32768). The default value is 0, which means that the broker s Transactions: Buffer Size is applied. Specifies the number of attempts at redelivery that are allowed. 8. After you configure the parameters, click Apply. The Sonic Management Console displays the new connection in the Connections tab. Deleting Aura SonicMQ Connections The following procedure describes how to delete a Aura SonicMQ connection. To delete a connection: 1. In the left panel in the Sonic Management Console, under the ESB Configured Objects node, expand the Endpoints folder, click the Aura SonicMQ Endpoint folder. 2. In the right panel, click the Connections tab. The Sonic Management Console lists the available connections under the Connections tab. Aurea Software, Inc. Confidential 103 Copyright 2013 Aurea, Inc.

104 Chapter 3: ESB Endpoints and Connections 3. Select a connection and click Delete. 4. Confirm the selection. Aurea Sonic ESB deletes the connection. Aurea Software, Inc. Confidential 104 Copyright 2013 Aurea, Inc.

105 Configuring Web Services 4 This chapter describes how to configure Web Services using WS-* standards in the following sections: Overview on page 105 Configuring WebService Protocols for ESB Processes on page 106 Related Configuration Documentation on page 107 Overview Sonic ESB processes can invoke and implement web services that conform to the WS-Security and WS-ReliableMessaging specifications. To enable this functionality, an administrator must correctly configure messaging brokers, acceptors, and routings. Sonic ESB leverages WS-Security and WS-ReliableMessaging support built into SonicMQ. An overview of how this feature is supported in SonicMQ is described in the Using HTTP Direct for Web Services chapter of the Aurea SonicMQ Deployment Guide. This chapter discusses the behavior of JMS clients that invoke or implement web services. The configuration issues are the same for ESB processes as they are for JMS clients, with one exception regarding the configuration of WebService protocols. Aurea Software, Inc. Confidential 105 Copyright 2013 Aurea, Inc.

106 Chapter 4: Configuring Web Services Configuring WebService Protocols for ESB Processes The configuration of Web service protocols is documented in detail in the Configuring Acceptors chapter of the Aurea SonicMQ Configuration and Management Guide. This chapter contains a Configuring HTTP(S) Direct Web Service Protocol Handlers section that describes how to configure Endpoint URLs for web services. This section refers to the following the dialog box, which is used to configure endpoint URLs: An endpoint URL is used by SOAP/HTTP clients to access a web service implemented by an ESB process. A URL extension can be mapped to a JMS destination or a URL. If it is mapped to a URL, the URL must be either a JNDI URL or a sonic URL of the form: sonic:///node_name/process_name where node_name is either the literal string local or a valid node name where the process is deployed. If you specify the URL of an ESB process, the process must have an entry endpoint and be deployed in an ESB Container. Aurea Software, Inc. Confidential 106 Copyright 2013 Aurea, Inc.

107 Related Configuration Documentation Related Configuration Documentation For more information about configuring Web services, see the following SonicMQ documents: Table 3: Configuring SonicMQ for WS-Security and WS-ReliableMessaging Configurable Element HTTP Direct Acceptor Web Service Protocol HTTP Web Service Protocol Routing Broker Location See the Configuring Acceptors chapter of the Aurea SonicMQ Configuration and Management Guide. See the Configuring Routings chapter of the SonicMQ Configuration and Management Guide. See the Configuring SonicMQ Brokers chapter of the Aurea SonicMQ Configuration and Management Guide. Aurea Software, Inc. Confidential 107 Copyright 2013 Aurea, Inc.

108 Chapter 4: Configuring Web Services Aurea Software, Inc. Confidential 108 Copyright 2013 Aurea, Inc.

109 Configuring Database Services Part II Part II contains the following chapters: Chapter 5, Using the Database Service JDBC Drivers on page 111 Chapter 6, Driver Connection Properties and Data Types by Database Brand on page 119 Chapter 7, SQL Escape Sequences for JDBC on page 191 Chapter 8, Configuring SQL Server Windows Authentication on page 201 Note: This section provides information for the JDBC drivers bundled with Aurea Sonic Database Service. If your installation uses a different JDBC Driver, consult the vendor s documentation for their configuration guidelines. Aurea Software, Inc. Confidential 109 Copyright 2013 Aurea, Inc.

110 Chapter : Configuring Database Services Aurea Software, Inc. Confidential 110 Copyright 2013 Aurea, Inc.

111 Using the Database Service JDBC Drivers 5 Chapter 5, on page 111 includes information on failover, load balancing, and error handling for Aurea Sonic Database Service connections. This chapter includes the following sections: JDBC Driver Connection Properties and the Database Service on page 112 Explains how to configure and deploy third-party JDBC drivers for use with Sonic Database Service. Load Balancing, Failover, and Connection Retry on page 112 Explains how these features are implemented and provides references to appendixes where the connection properties for each of the JDBC drivers are listed. Using Activation Daemons on page 117 Shows how to use Activation Daemons with Database Services. Aurea Software, Inc. Confidential 111 Copyright 2013 Aurea, Inc.

112 Chapter 5: Using the Database Service JDBC Drivers JDBC Driver Connection Properties and the Database Service The Database Service reconnect timeout might expire while the JDBC driver failover or retry is taking place. In this event, if the JDBC driver failover or connection retry operations exceed the Database Service connection Timeout limit, the connection will not succeed and the associated Database Service operation will fail, resulting in an error message being sent to the rejected message endpoint (RME.) The Database Service reconnect is not the same as the JDBC driver connection retry. The Database Service is not aware of a connection failure until the JDBC driver connection retry is unsuccessful. When the Database Service attempts a reconnection, the JDBC driver acts as if this is a new database connection and the driver load balancing, failover, and connection retry parameters are all used as if an initial database connection is being established. Load Balancing, Failover, and Connection Retry To optimize performance, you can implement client load balancing, connection failover, and connection retry in your Database Service connection properties. To do this, specify both primary and alternate servers in the connection URL. The following sections explain these features: Client Load Balancing on page 113 Connection Failover on page 114 Connection Retry on page 116 For details on configuring load balancing, failover, and connection retry properties for each of the JDBC drivers available with Sonic Database Service, see the following sections: Table 4: Documentation for JDBC Driver Connection Properties and Alternate Servers JDBC Driver Progress OpenEdge Connection Properties Documentation Progress OpenEdge Database on page 119 Progress OpenEdge Connection Failover Properties on page 124 Specifying Alternate Servers for the Progress OpenEdge Driver on page 125 Progress OpenEdge Driver Data Types on page 126 DB2 DB2 Driver Connection Properties on page 128 DB2 Driver Connection Failover Properties on page 140 Specifying Alternate Servers for the DB2 Driver on page 140 DB2 Driver Data Types on page 141 Aurea Software, Inc. Confidential 112 Copyright 2013 Aurea, Inc.

113 Load Balancing, Failover, and Connection Retry Table 4: Documentation for JDBC Driver Connection Properties and Alternate Servers JDBC Driver Connection Properties Documentation Informix Informix Driver Connection Properties on page 142 Informix Driver Connection Failover Properties on page 150 Specifying Alternate Servers for the Informix Driver on page 150 Informix Driver Data Types on page 151 Oracle Oracle Driver Connection Properties on page 152 Oracle Driver Connection Failover Properties on page 162 Specifying Alternate Servers for the Oracle Driver on page 163 Oracle Driver Data Types on page 164 Microsoft SQL Server Microsoft SQL Server Driver Connection Properties on page 166 Microsoft SQL Server Driver Connection Failover Properties on page 175 Specifying Alternate Servers for the Microsoft SQL Server Driver on page 176 Microsoft SQL Server Driver Data Types on page 177 Sybase Sybase Driver Connection Properties on page 178 Sybase Driver Connection Failover Properties on page 187 Specifying Alternate Servers for the Sybase Driver on page 188 Sybase Driver Data Types on page 189 Client Load Balancing Client load balancing helps distribute new connections to multiple servers in your environment so that no one server is overwhelmed with connection requests. When client load balancing is enabled, the order in which primary and alternate database servers are tried is random. For example, suppose that client load balancing is enabled as shown in Figure 1. Aurea Software, Inc. Confidential 113 Copyright 2013 Aurea, Inc.

114 Chapter 5: Using the Database Service JDBC Drivers Figure 1: Client Load Balancing Example 3 Database Server A (Primary) Sonic Database Service 1 Database Server B (First Alternate) 2 Database Server C (Second Alternate) In the example in Figure 1, when client load balancing is enabled the Database Service first attempts to connect to Database Server B (1). The Database Service then attempts a connection to Database Server C (2), followed by a connection attempt to Database Server A (3). In contrast, if client load balancing was not enabled in this scenario, each database server would be tried in sequential order, primary server first, then each alternate server based on their entry order in the alternate servers list. To use client load balancing, specify the following properties in the form property=value in your connection URL: LoadBalancing Set this property to true to enable load balancing. AlternateServers See Specifying Primary and Alternate Servers on page 117. Connection Failover Connection failover allows an application to connect to an alternate, or backup, database server if the primary database server is unavailable, for example, because of a hardware failure or traffic overload. Connection failover ensures that the data your critical JDBC applications depend on is always available. You can customize the Database Service JDBC drivers for connection failover by configuring a list of alternate database servers that are tried if the primary server is not accepting connections. Connection attempts continue until a connection is successfully established or until all the alternate database servers have been tried the specified number of times. For example, suppose you have the environment shown in Figure 2 with multiple database servers: Database Server A, B, and C. Database Server A is designated as the primary database server, Database Server B is the first alternate server, and Database Server C is the second alternate server. Aurea Software, Inc. Confidential 114 Copyright 2013 Aurea, Inc.

115 Load Balancing, Failover, and Connection Retry Figure 2: Connection Failover Example 1 Database Server A (Primary) Sonic Database Service 2 Database Server B (First Alternate) 3 Database Server C (Second Alternate) In the example shown in Figure 2, the Database Service first attempts to connect to the primary database server, Database Server A (1). If connection failover is enabled and Database Server A fails to accept the connection, the Database Service then attempts to connect to Database Server B (2). If that connection attempt also fails, the Database Service attempts to connect to Database Server C (3). In this example, it is probable that at least one connection attempt will succeed, but if no connection attempt succeeds, the driver can retry each database server (primary and alternates) for a specified number of attempts. The JDBC drivers allow you to customize the connection retry feature to specify the number of attempts that are made. A JDBC driver fails over to the next alternate database server only if a successful connection cannot be established with the current alternate server. If the driver successfully establishes communication with a database server and the connection request is rejected by the database server because the login information is invalid, for example, the driver does not try to connect to the next database server in the list and generates an exception. Connection failover provides protection for new connections only and does not preserve states for transactions or queries. To use connection failover, see the appropriate section for your database for a list of property=value pairs to add to your connection URL: Progress OpenEdge Connection Failover Properties on page 124 DB2 Driver Connection Failover Properties on page 140 Informix Driver Connection Failover Properties on page 150 Oracle Driver Connection Failover Properties on page 162 Microsoft SQL Server Driver Connection Failover Properties on page 175 Sybase Driver Connection Failover Properties on page 187 Aurea Software, Inc. Confidential 115 Copyright 2013 Aurea, Inc.

116 Chapter 5: Using the Database Service JDBC Drivers Connection Retry Connection retry allows the JDBC driver to retry connections to a list of database servers (primary and alternate) until a successful connection is established. Use the ConnectionRetryCount and ConnectionRetryDelay properties to enable and control how connection retry works. In the following examples for the different JDBC drivers, if a successful connection is not established on the driver s first pass through the list of database servers (primary and alternate), the driver retries the list of servers in the same sequence twice (ConnectionRetryCount=2). If a successful connection is not established on the first retry pass through the list of servers, the driver makes another pass through the list of servers. Because the connection retry delay has been set to five seconds (ConnectionRetryDelay=5), the driver waits five seconds between retry passes. Connection Retry Example for Progress OpenEdge Driver jdbc:datadirect:openedge://server1:2003;hostname=testserver; DatabaseName=TestServer;User=test;Password=secret; AlternateServers=(server2:2003;DatabaseName=TEST2,server3:2003; DatabaseName=TEST3);ConnectionRetryCount=2;ConnectionRetryDelay=5 Connection Retry Example for DB2 Driver jdbc:aurea:db2://server1:50000;databasename=test; AlternateServers=(server2:50000;DatabaseName=TEST2, server3:50000;databasename=test3);connectionretrycount=2; ConnectionRetryDelay=5 Connection Retry Example for Informix Driver jdbc:aurea:informix://server1:2003;informixserver=testserver; DatabaseName=TestServer; AlternateServers=(server2:2003;DatabaseName=TEST2,server3:2003; DatabaseName=TEST3);ConnectionRetryCount=2; ConnectionRetryDelay=5 Connection Retry Example for Oracle Driver jdbc:aurea:oracle://server1:1521;servicename=test; AlternateServers=(server2:1521;ServiceName=TEST2, server3:1521;servicename=test3);connectionretrycount=2; ConnectionRetryDelay=5 Connection Retry Example for Microsoft SQL Server Driver jdbc:aurea:sqlserver://server1:1433;databasename=test; AlternateServers=(server2:1433;DatabaseName=TEST2, server3:1433;databasename=test3);connectionretrycount=2; ConnectionRetryDelay=5 Connection Retry Example for Sybase Driver jdbc:aurea:sybase://server1:4100;databasename=test; AlternateServers=(server2:4100;DatabaseName=TEST2, server3:4100;databasename=test3);connectionretrycount=2; ConnectionRetryDelay=5 Aurea Software, Inc. Confidential 116 Copyright 2013 Aurea, Inc.

117 Using Activation Daemons Specifying Primary and Alternate Servers The Sonic Database Service JDBC drivers allow you to specify a list of alternate database servers that are tried at connection time if the primary server is not accepting connections using the AlternateServers property. Connection attempts continue until a connection is successfully established or until all the database servers (primary and alternate) have been tried the specified number of times. Connection information for alternate servers is specified using the AlternateServers property in a connection URL. The value of the AlternateServers property is a string that has the format: (servername1[:port1][;property=value[;...]],servername2[:port2] [;property=value[;...]],...) where: servername1 is the IP address or server name of the first alternate database server, servername2 is the IP address or server name of the second alternate database server, and so on. The IP address or server name is required for each alternate server entry. port1 is the port number on which the first alternate database server is listening, port2 is the port number on which the second alternate database server is listening, and so on. Port numbers are optional for each alternate server entry. If unspecified, the port number specified for the primary server is used. If a port number is unspecified for the primary server, the default port number is used (see Table 4 to locate the appendix containing information on the default PortNumber values for the JDBC drivers). property=value is an optional connection property, based on the JDBC driver to which you are connecting. See the following sections for examples that describe how to specify primary and alternate servers for different JDBC drivers: Specifying Alternate Servers for the Progress OpenEdge Driver on page 125 Specifying Alternate Servers for the DB2 Driver on page 140 Specifying Alternate Servers for the Informix Driver on page 150 Specifying Alternate Servers for the Oracle Driver on page 163 Specifying Alternate Servers for the Microsoft SQL Server Driver on page 176 Specifying Alternate Servers for the Sybase Driver on page 188 Using Activation Daemons Using an Activation Daemon is a way to launch new containers as spawned processes of the container hosting the Activation Daemon. This allows new containers to be launched by remote administrative clients without the administrator having to log on to that host. A typical use would be to have the container hosting the Activation Daemon launched as a Windows service on Windows platforms or a startup process under UNIX. Aurea Software, Inc. Confidential 117 Copyright 2013 Aurea, Inc.

118 Chapter 5: Using the Database Service JDBC Drivers An Activation Daemon monitors the health of its spawned containers and, depending on configured rules, restarts those containers upon failure. Normally one Activation Daemon is deployed per host. Multiple Activation Daemons can be created per domain. Containers can be launched by the Activation Daemon: At Activation Daemon startup time At a configured time After a container failure (up to a configurable number of retries) On demand from the Sonic Management Console or via the Activation Daemon s management API You can create and configure an Activation Daemon to start an ESB Container hosting a Database Service. The steps required to create, configure, and test the Activation Daemon are: 1. Create an Activation Daemon 2. Add the Activation Daemon to a management container 3. Add a container to an Activation Daemon s activation list Using Activation Daemons on page 74 provides information about how to complete the steps to create and configure an Activation Daemon to start an ESB Container hosting a service. Aurea Software, Inc. Confidential 118 Copyright 2013 Aurea, Inc.

119 Driver Connection Properties and Data Types by Database Brand 6 This chapter contains driver connection properties, connection failover properties, and driver data types for the following database brands: Progress OpenEdge Database on page 119 DB2 on page 127 Informix on page 142 Oracle on page 152 Microsoft SQL Server on page 166 Sybase on page 178 Progress OpenEdge Database The following sections describe settings for the Sonic Database Service s Progress OpenEdge driver: Progress OpenEdge Connection Properties on page 120 Progress OpenEdge Connection Failover Properties on page 124 Specifying Alternate Servers for the Progress OpenEdge Driver on page 125 Progress OpenEdge Driver Data Types on page 126 See the DataDirect Connect for JDBC Progress OpenEdge Driver User s Guide and Reference for more information. Aurea Software, Inc. Confidential 119 Copyright 2013 Aurea, Inc.

120 Chapter 6: Driver Connection Properties and Data Types by Database Brand Progress OpenEdge Connection Properties Table 5 describes the JDBC connection properties supported by the Progress OpenEdge driver. The properties have the format: property=value Table 5: Connection Properties for the Progress OpenEdge Driver Property AlternateServers Default: No default Data type: String Description A comma-separated list of alternate database servers that the driver will try to connect to if the primary database server is unavailable. The value of this property is a string that specifies each alternate server. This string has the format: (servername1[:port1][;property=value],servername2[:p ort2][;property=value],...) The server name is required for each alternate server entry. Port number and connection properties (property=value) are optional for each alternate server entry. If the port is unspecified, the port number of the primary server is used. The driver only allows one optional property, DatabaseName. For example: jdbc:datadirect:openedge://server1:4100; DatabaseName=TEST;User=test;Password=secret AlternateServers=(server2:4100;DatabaseName=TEST2, server3:4100;databasename=test3) contains alternate server entries for server2 and server3. The alternate server entries contain the optional DatabaseName property. Aurea Software, Inc. Confidential 120 Copyright 2013 Aurea, Inc.

121 Progress OpenEdge Database Table 5: Connection Properties for the Progress OpenEdge Driver Property ConnectionRetryCount Default: 5 Data type: int Description The number of times the driver retries connections to the primary database server, and if specified, alternate servers until a successful connection is established. Valid values are 0 and any positive integer. If set to 0, the driver does not try to reconnect after the initial unsuccessful attempt. For example, in the case where the following properties are specified: AlternateServers=(server2:2003,server3:2003,server4:2003) and ConnectionRetryCount=1 If a connection is not successfully established on the driver s first pass through the list of database servers, the driver retries all the servers in the list only once. If an application sets a login timeout value (for example, using DataSource.loginTimeout or DriverManager.loginTimeout), the login timeout takes precedence over this property. For example, if the login timeout expires, any connection attempts to alternate servers stop. If the LoadBalancing property is set to true, the driver may sequence through the list of servers (primary and alternate) in a different order each time. The ConnectionRetryDelay property specifies the wait interval, in seconds, used between attempts. ConnectionRetryDelay Default: 1 Data type: int The number of seconds the driver waits before retrying connections to the primary database server, and if specified, alternate servers when ConnectionRetryCount is set to a positive integer. For example, in the case where the following properties are specified: AlternateServers=(server2:2003,server3:2003,server4:2003) and ConnectionRetryCount=2 and ConnectionRetryDelay=3 If a connection is not successfully established on the driver s first pass through the list of database servers, the driver retries the list of servers twice. It waits 3 seconds between the first connection retry attempt and the second connection retry attempt. If the LoadBalancing property is set to true, the driver may sequence through the list of servers (primary and alternate) in a different order each time. Aurea Software, Inc. Confidential 121 Copyright 2013 Aurea, Inc.

122 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 5: Connection Properties for the Progress OpenEdge Driver DatabaseName Default: No default Data type: String HostName Property Default: No default Data type: String InsensitiveResultSet BufferSize Default: 2048 Data type: int The name of the database to which you want to connect. The name of the Progress OpenEdge database server to which you want to connect. Specifies either the IP address or the server name (if your network supports named servers) of the primary database server. For example, or HostName. This property is supported only for DataSource connections {-1 0 x} Description Determines the amount of memory used by the driver to cache insensitive result set data. It must have one of the following values: If set to -1, the driver caches all insensitive result set data in memory. If the size of the result set exceeds available memory, an OutOfMemoryException is generated. Because the need to write result set data to disk is eliminated, the driver processes the data more efficiently. If set to 0, the driver caches all insensitive result set data in memory, up to a maximum of 2 GB. If the size of the result set data exceeds available memory, the driver pages the result set data to disk. Because result set data may be written to disk, the driver may have to reformat the data to write it correctly to disk. If set to x, where x is a positive integer, the driver caches all insensitive result set data in memory, using this value to set the size (in KB) of the memory buffer for caching insensitive result set data. If the size of the result set data exceeds the buffer size, the driver pages the result set data to disk. Because the result set data may be written to disk, the driver may have to reformat the data to write it correctly to disk. Specifying a buffer size that is a power of 2 results in more efficient memory use. Aurea Software, Inc. Confidential 122 Copyright 2013 Aurea, Inc.

123 Progress OpenEdge Database Table 5: Connection Properties for the Progress OpenEdge Driver Property LoadBalancing Default: false Data type: boolean {true false} Description Determines whether the driver will use client load balancing in its attempts to connect to a list of database servers (primary and alternate). The list of alternate servers is specified by the AlternateServers property. If set to true, client load balancing is used and the driver attempts to connect to the list of database servers (primary and alternate servers) in random order. If set to false (the default), client load balancing is not used and the driver connects to each server based on their sequential order (primary server first, then, alternate servers in the order they are specified). For example, in the case where the following properties are specified: AlternateServers=(server2:4100,server3:4100,server4:4100) and LoadBalancing=true The driver randomly selects from the list of primary and alternate servers which server to connect to first. If that connection fails, the driver again randomly selects from this list of servers until all servers in the list have been tried or a connection is successfully established. MaxPooledStatements Default: 0 Data type: int Password REQUIRED Default: No default Data type: String PortNumber REQUIRED Default: Varies with operating system Data type: int The maximum number of pooled prepared statements for this connection. Setting MaxPooledStatements to an integer greater than zero (0) enables the Progress OpenEdge driver s internal prepared statement pooling, which is useful when the driver is not running from within an application server or another application that provides its own prepared statement pooling. If set to a positive number, the driver uses that value to cache a certain number of prepared statements created by an application. For example, if the value of this property is set to 20, the driver caches the last 20 prepared statements created by the application. If the value set for this property is greater than the number of prepared statements used by the application, all prepared statements created by the application are cached. Because CallableStatement is a sub-class of PreparedStatement, CallableStatements also are pooled. The case-sensitive password used to connect to your OpenEdge database. A password is required only if security is enabled on your database. If so, contact your system administrator to obtain your password. The password is automatically encrypted. The TCP port of the primary database server that is listening for connections to the Progress OpenEdge database. This property is supported only for DataSource connections. Aurea Software, Inc. Confidential 123 Copyright 2013 Aurea, Inc.

124 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 5: Connection Properties for the Progress OpenEdge Driver Property SpyAttributes Default: No default Data type: String User REQUIRED Default: No default Data type: String Enables DataDirect Spy, a tool that can be used to log detailed information about calls issued by a running application to any DataDirect Connect for JDBC driver. The format for the value of this property is: (spy_attribute[;spy_attribute]...) where spy_attribute is any valid DataDirect Spy attribute. For example: Description SpyAttributes=(log=(file)/tmp/spy.log;linelimit=80) logs all JDBC activity to a file using a maximum of 80 characters for each line. Note: If coding a path on Windows to the log file in a Java string, the backslash character (\) must be preceded by the Java escape character, a backslash. For example: log=(file)c:\\temp\\spy.log. DataDirect Spy is not enabled by default. The case-insensitive user name used to connect to your OpenEdge database. A user name is required only if security is enabled on your database. If so, contact your system administrator to get your user name. Progress OpenEdge Connection Failover Properties Table 6 summarizes the connection properties that control how connection failover works with the Database Service Progress OpenEdge driver. See Progress OpenEdge Connection Properties on page 120 for details about configuring each property. Table 6: Connection Failover Properties for the Progress OpenEdge Driver Property AlternateServers ConnectionRetryCount ConnectionRetryDelay DatabaseName Description List of alternate database servers. An IP address or server name identifying each server is required. Port number and the DatabaseName connection property are optional. If the port number is unspecified, the port number specified for the primary server is used. Number of times the driver retries the primary database server, and if specified, alternate servers until a successful connection is established. The default is 5. Wait interval, in seconds, between connection retry attempts when the ConnectionRetryCount property is set to a positive integer. The default is 1. Name of the Progress OpenEdge database server to which you want to connect. Aurea Software, Inc. Confidential 124 Copyright 2013 Aurea, Inc.

125 Progress OpenEdge Database Table 6: Connection Failover Properties for the Progress OpenEdge Driver Property LoadBalancing PortNumber Description Sets whether the driver will use client load balancing in its attempts to connect to the list of database servers (primary and alternate). If client load balancing is enabled, the driver uses a random pattern instead of a sequential pattern in its attempts to connect. The default is false (client load balancing is disabled). Port listening for connections on the primary database server. This property is supported only for DataSource connections. The default port number varies, depending on operating system. See Client Load Balancing on page 113 and Connection Failover on page 114 for overviews of these features. Specifying Alternate Servers for the Progress OpenEdge Driver The following connection URL for the Progress OpenEdge driver specifies connection information for the primary and alternate servers: jdbc:datadirect:openedge://server1:2003;hostname=testserver; DatabaseName=TestServer;User=test;Password=secret; AlternateServers=(server2:2003;HostName=TestServer2,server3:2003) In this example:...server1:2003;hostname=testserver; DatabaseName=TestServer... is the part of the connection URL that specifies connection information for the primary server. Alternate servers are specified using the AlternateServers property. For example:...;alternateservers=(server2:2003; HostName=TestServer2,server3:2003) Similarly, connection information for the primary server specified using a JDBC data source would look something like this: OpenedgeDataSource mds = new OpenedgeDataSource(); mds.setdescription("my OpenedgeDataSource"); mds.setservername("server1"); mds.setportnumber(2003); mds.sethostname("testserver"); mds.setdatabasename("testserver"); mds.setuser("test"); mds.setpassword("secret"); mds.setalternateservers=(server2:2003;hostname= TestServer2,server3:2003) In this example, connection information for the primary server is specified using the ServerName, PortNumber, HostName, and DatabaseName properties. Connection information for alternate servers is specified using the AlternateServers property. Aurea Software, Inc. Confidential 125 Copyright 2013 Aurea, Inc.

126 Chapter 6: Driver Connection Properties and Data Types by Database Brand Using the AlternateServers Property Connection information for alternate servers is specified using the AlternateServers property with either a connection URL through the JDBC Driver Manager or a JDBC data source. The value of the AlternateServers property is a string that has the format: (servername1[:port1][;property=value[;...]],servername2[:port2] [;property=value[;...]],...) where: servername1 is the IP address or server name of the first alternate database server, servername2 is the IP address or server name ofthe second alternate database server, and so on. The IP address or server name is required for each alternate server entry. port1 is the port number on which the first alternate database server is listening, port2 is the port number on which the second alternate database server is listening, and so on. The port number is optional for each alternate server entry. If unspecified, the port number specified for the primary server is used. property=value is either of the following connection properties: DatabaseName or HostName. These connection properties are optional for each alternate server entry. For example: jdbc:datadirect:openedge://server1:2003;hostname=testserver; DatabaseName=TestServer;User=test;Password=secret; AlternateServers=(server2:2003;HostName=TestServer2; DatabaseName=TestServer,server3:2003) If you do not specify an optional connection property in an alternate server entry, the connection to that alternate server uses the property specified in the URL. For example, if youspecify HostName=TestServer and DatabaseName=TestServer for the primary server, but do not specify the HostName and DatabaseName properties in the alternate server entry as shown in the following URL, the driver uses the HostName and DatabaseName specified for the primary server and tries to connect to the TestServer database on the Progress OpenEdge server TestServer: jdbc:datadirect:openedge://server1:2003;hostname=testserver; DatabaseName=TestServer;AlternateServers=(server2:2003,server3:2003) Progress OpenEdge Driver Data Types Table 7 lists the data types supported by the Progress OpenEdge driver and describes how they are mapped to JDBC data types. Table 7: Progress OpenEdge (OED) Data Types Progress OpenEdge Data Type JDBC Data Type bigint binary bit BIGINT BINARY BIT Aurea Software, Inc. Confidential 126 Copyright 2013 Aurea, Inc.

127 DB2 Table 7: Progress OpenEdge (OED) Data Types Progress OpenEdge Data Type JDBC Data Type blob char clob date decimal float int8 integer longvarbinary longvarchar numeric real smallint time timestamp timestamp with time zone tinyint varbinary varchar BLOB CHAR CLOB DATE DECIMAL FLOAT BIGINT INTEGER LONGVARBINARY LONGVARCHAR NUMERIC REAL SMALLINT TIME TIMESTAMP CHAR TINYINT VARBINARY VARCHAR DB2 The following sections describe settings for the Sonic Database Service DB2 driver: DB2 Driver Connection Properties on page 128 DB2 Driver Connection Failover Properties on page 140 Specifying Alternate Servers for the DB2 Driver on page 140 DB2 Driver Data Types on page 141 Aurea Software, Inc. Confidential 127 Copyright 2013 Aurea, Inc.

128 Chapter 6: Driver Connection Properties and Data Types by Database Brand DB2 Driver Connection Properties Table 8 describes the JDBC connection properties supported by the DB2 driver. The properties have the format: property=value Note: All connection property names are case-insensitive. For example, Password is the same as password. Table 8: DB2 Connection Properties Property AddToCreateTable OPTIONAL AlternateID OPTIONAL Description A string that is appended to the end of all CREATE statements. This property typically is used to add an in database clause. The default schema name that is used to qualify unqualified database objects in dynamically prepared database queries. Valid values depend on your DB2 database: DB2 UDB and DB2 iseries Sets the value in the DB2 CURRENT SCHEMA special register. The value of this property must be a valid DB2 schema name. DB2 UDB and DB2 iseries do not validate values specified for the CURRENT SCHEMA register. DB2 OS/390 Sets the value in the DB2 CURRENT SQLID special register. The value of this property is validated by the server. Refer to your IBM documentation for valid values for the CURRENT SQLID register. Aurea Software, Inc. Confidential 128 Copyright 2013 Aurea, Inc.

129 DB2 Table 8: DB2 Connection Properties AlternateServers OPTIONAL Property Description A list of alternate database servers that the driver will try to connect to if the primary database server is unavailable. The value of this property is a string that specifies each alternate server. This string has the format: (servername1[:port1][;property=value[;...]], servername2[:port2][;property=value[;...]],...) The server name is required for each alternate server entry. Port number and connection properties (property=value) are optional for each alternate server entry. If the port is unspecified, the port number of the primary server is used. If the port number of the primary server is unspecified, the default port number of is used. Optional connection properties for the driver are DatabaseName (for DB2 UDB) and LocationName (for DB2 OS/390 and iseries). For example: jdbc:aurea:db2://server1:50000;databasename=test; AlternateServers=(server2:50000;DatabaseName=TEST2, server3:50000;databasename=test3) contains alternate server entries for server2 and server3. The alternate server entries contain the optional DatabaseName property. Other properties are: ConnectionRetryCount Controls the number of times the driver retries the list of servers (primary and alternate) while attempting to establish a connection. ConnectionRetryDelay Sets the wait interval, in seconds, between retry attempts. LoadBalancing Controls the order in which the driver sequences through the list of servers (primary and alternate) while attempting to establish a connection. See Specifying Primary and Alternate Servers on page 117 for more information about specifying connection information for primary and alternate servers. Aurea Software, Inc. Confidential 129 Copyright 2013 Aurea, Inc.

130 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 8: DB2 Connection Properties BatchPerformanceWorkaround OPTIONAL Property {true false} Description For DB2 UDB 8.1, the native DB2 batch mechanism is used. This property determines whether certain restrictions are enforced to facilitate data conversions as follows: false The methods used to set the parameter values of a batch operation performed using a PreparedStatement must match the database data type of the column the parameter is associated with. This is because DB2 servers do not perform implicit data conversions. true This restriction is removed; however, parameter sets may not be executed in the order they were specified. The default is false. CatalogIncludesSynonyms OPTIONAL {true false} This property value determines behavior as follows: true Synonyms are included in the result sets returned from the DatabaseMetaData.getColumns method. false Synonyms are omitted from result sets. The default is true. This property is only applicable for DB2 UDB 7.1 and 7.2, DB2 OS/390, and DB2 iseries. This property is ignored for DB2 UDB 8.1. The driver always returns synonyms for the DatabaseMetaData.getColumns method when connected to DB2 UDB 8.1. CatalogSchema OPTIONAL The DB2 schema to use for catalog functions. The value must be the name of a valid DB2 schema. The default is SYSCAT for DB2 UDB, SYSIBM for DB2 OS/390, and QSYS2 for DB2 iseries. To improve performance, views of system catalog tables can be created in a schema other than the default catalog schema. Setting this property to a schema that contains views of the catalog tables allows the driver to use those views. To ensure that catalog methods function correctly, views for specific catalog tables must exist in the specified schema. The views that are required depend on your DB2 database. Aurea Software, Inc. Confidential 130 Copyright 2013 Aurea, Inc.

131 DB2 Table 8: DB2 Connection Properties Property CharsetFor65535 OPTIONAL CodePageOverride OPTIONAL CollectionId OPTIONAL The code page to use to convert character data stored as bit data in character columns (Char, Varchar, Longvarchar, Char for Bit Data, Varchar for Bit Data, Longvarchar for Bit Data) defined with CCSID All character data stored as bit data retrieved from the database using columns defined with CCSID is converted using the specified code page. The value must be a string containing the name of a valid code page supported by your Java Virtual Machine, for example, CharsetFor65535=CP950. This property has no effect when writing data to character columns defined with CCSID A code page to be used to convert Character and Clob data. The specified code page overrides the default database code page. All Character and Clob data retrieved from or written to the database is converted using the specified code page. The value must be a string containing the name of a valid code page supported by your Java Virtual Machine, for example, CodePageOverride=CP950. The name of the collection or library (group of packages) to which DB2 packages are bound. The default is NULLID. Description This property is ignored for DB2 UDB. Aurea Software, Inc. Confidential 131 Copyright 2013 Aurea, Inc.

132 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 8: DB2 Connection Properties ConnectionRetryCount OPTIONAL Property The number of times the driver retries connection attempts to a list of database servers (primary and alternate) until a successful connection is established. Valid values are 0 and any positive integer. If set to 0, the driver does not retry connections if a successful connection is not established on the driver s first pass through the list. The default is 0. For example, in the case where the following properties are specified: AlternateServers=(server2:50000,server3:50000,server4:5000 0) and ConnectionRetryCount=1 Description if a connection is not successfully established on the driver s first pass through the list of database servers, the driver retries all the servers in the list only once. If an application sets a login timeout value (for example, using DriverManager.loginTimeout), the login timeout takes precedence over this property. For example, if the login timeout expires, any connection attempts stop. The ConnectionRetryDelay property specifies the wait interval, in seconds, used between retry attempts. See Connection Retry on page 116 for more information about specifying connection information for primary and alternate servers. Aurea Software, Inc. Confidential 132 Copyright 2013 Aurea, Inc.

133 DB2 Table 8: DB2 Connection Properties Property ConnectionRetryDelay OPTIONAL CreateDefaultPackage OPTIONAL The number of seconds the driver will wait between connection retry attempts when ConnectionRetryCount is set to a positive integer. The default is 3. For example, in the case where the following properties are specified: AlternateServers=(server2:50000,server3:50000,server4:5000 0) and ConnectionRetryCount=2 and ConnectionRetryDelay=3 if a connection is not successfully established on the driver s first pass through the list of database servers, the driver retries the list of servers twice. The driver waits 3 seconds between the first connection retry attempt and the second connection retry attempt. See Connection Retry on page 116 for more information about specifying connection information for primary and alternate servers. {true false} Description This property determines behavior as follows: true The DB2 driver automatically creates any required DB2 packages. false The driver creates the required DB2 packages automatically only if they do not already exist. The default is false. For DB2 UDB, this property must be used in conjunction with the ReplacePackage property. For DB2 OS/390 and DB2 iseries, DB2 packages are created in the collection or library specified by the CollectionId property. DatabaseName The name of the database to which you want to connect. This property is supported only for DB2 UDB. Aurea Software, Inc. Confidential 133 Copyright 2013 Aurea, Inc.

134 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 8: DB2 Connection Properties Property DiagnosticFilename OPTIONAL DynamicSections OPTIONAL Grantee OPTIONAL The path and filename of the file to which you want state information logged when an exception is generated. If the file does not already exist, it will be created the first time state information is generated. If this property is not specified, state information is not logged. When you contact Technical Support with a problem, you might be asked to generate a state information log. Your application should ensure that the driver is granted read/write permission to the specified file. The number of statements in the DB2 package that the DB2 driver will prepare for a single user. The default is 200. Description The name of the schema to which you want to grant EXECUTE privileges for DB2 packages. The value must be a valid DB2 schema. This property is ignored if the GrantExecute property is set to false. The default is PUBLIC. GrantExecute OPTIONAL {true false} Determines which DB2 schema is granted EXECUTE privileges for DB2 packages as follows: true EXECUTE privileges are granted to the schema specified by the Grantee property. false EXECUTE privileges are granted to the schema that created the DB2 packages. The default is true. Aurea Software, Inc. Confidential 134 Copyright 2013 Aurea, Inc.

135 DB2 Table 8: DB2 Connection Properties InsensitiveResultSetBufferSize OPTIONAL Property {-1 0 x} Determines the amount of memory used by the driver to cache insensitive result set data as follows: -1 The driver caches all insensitive result set data in memory. If the size of the result set exceeds available memory, an OutOfMemoryException is generated. Because the need to write result set data to disk is eliminated, the driver processes the data more efficiently. 0 The driver caches all insensitive result set data in memory, up to a maximum of 2 GB. If the size of the result set data exceeds available memory, the driver pages the result set data to disk. Because result set data may be written to disk, the driver may have to reformat the data to write it correctly to disk. x, where x is a positive integer The driver caches all insensitive result set data in memory, using this value to set the size (in KB) of the memory buffer for caching insensitive result set data. If the size of the result set data exceeds the buffer size, the driver pages the result set data to disk. Because the result set data may be written to disk, the driver may have to reformat the data to write it correctly to disk. Specifying a buffer size that is a power of 2 results in more efficient memory use. The default is 2048 (KB). Description Aurea Software, Inc. Confidential 135 Copyright 2013 Aurea, Inc.

136 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 8: DB2 Connection Properties LoadBalancing OPTIONAL Property {true false} Description Determines whether the driver will use client load balancing in its attempts to connect to a list of database servers (primary and alternate). The list of alternate servers is specified by the AlternateServers property. The LoadBalancing property determines behavior as follows: true Client load balancing is used and the driver attempts to connect to the list of database servers (primary and alternate servers) in random order. false Client load balancing is not used and the driver connects to each server based on their sequential order (primary server first, then, alternate servers in the order they are specified). The default is false. For example, in the case where the following properties are specified: AlternateServers=(server2:50000,server3:50000,server4:5000 0) and LoadBalancing=true the driver randomly selects from the list of primary and alternate servers which server to connect to first. If that connection fails, the driver again randomly selects from this list of servers until all servers in the list have been tried or a connection is successfully established. See Client Load Balancing on page 113 for more information about specifying connection information for primary and alternate servers. LocationName The name of the DB2 location that you want to access. This property is supported only for DB2 OS/390 and iseries. Aurea Software, Inc. Confidential 136 Copyright 2013 Aurea, Inc.

137 DB2 Table 8: DB2 Connection Properties MaxPooledStatements OPTIONAL Property Description The maximum number of pooled prepared statements for this connection. MaxPooledStatements property values determine behavior as follows: An integer greater than zero (0) Enables the DB2 driver s internal prepared statement pooling, which is useful when the driver is not running from within an application server or another application that provides its own prepared statement pooling. The driver uses this value to cache a certain number of prepared statements created by an application. For example, if the value of this property is set to 20, the driver caches the last 20 prepared statements created by the application. A value greater than the number of prepared statements used by the application All prepared statements created by the application are cached. Because CallableStatement is a sub-class of PreparedStatement, CallableStatements also are pooled. The default is 0. PackageOwner OPTIONAL Password PortNumber OPTIONAL ReplacePackage OPTIONAL The owner to be used for any DB2 packages that are created. The default is NULL. A case-sensitive password used to connect to your DB2 database. A password is required only if security is enabled on your database. Contact your system administrator to obtain your password. The TCP port of the primary database server that is listening for connections to the DB2 database. The default is {true false} Specifies whether the current bind process will replace the existing DB2 packages used by the driver. For DB2 UDB, this property must be used in conjunction with the CreateDefaultPackage property. The default is false. Aurea Software, Inc. Confidential 137 Copyright 2013 Aurea, Inc.

138 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 8: DB2 Connection Properties SecurityMechanism OPTIONAL Property Description {ClearText EncryptedPassword EncryptedUIDPassword} Determines the security method the driver uses to authenticate the user to the DB2 server when establishing a connection. If the specified authentication method is not supported by the DB2 server, the connection fails and the driver generates an exception. This property determines behavior as follows: ClearText The driver sends the password in clear text to the DB2 server for authentication. EncryptedPassword The driver sends an encrypted password to the DB2 server for authentication. EncryptedUIDPassword The driver sends an encrypted user ID and password to the DB2 server for authentication. The default is ClearText. SendStreamAsBlob OPTIONAL {true false} Determines whether binary stream data that is less than 32K bytes is sent to the database as Long Varchar for Bit Data or Blob data. Binary stream data that is less than 32K bytes can be inserted into a Long Varchar for Bit Data column, which has a maximum length of 32K bytes, or a Blob column. Binary streams that are larger than 32K bytes can only be inserted into a Blob column. The driver always sends binary stream data larger than 32K bytes to the database as Blob data. This property determines behavior as follows: true The driver sends binary stream data that is less than 32K to the database as Blob data. If the target column is a Long Varchar for Bit Data column and not a Blob column, the Insert or Update statement fails. The driver automatically retries the Insert or Update statement, sending the data as Long Varchar for Bit Data, if the stream passed into the driver is resettable. Sending binary stream data that is less than 32K bytes in length initially as a Blob significantly improves performance if the Insert or Update column is a Blob column. false The driver sends binary stream data that is less than 32K to the database as Long Varchar for Bit Data data. If the target column is a Blob column and not a Long Varchar for Bit Data column, the Insert or Update statement fails. The driver retries the Insert or Update statement, sending the data as Blob data. The default is false. ServerName Specifies either the IP address or the server name (if your network supports named servers) of the primary database server. For example, or DB2Server. Aurea Software, Inc. Confidential 138 Copyright 2013 Aurea, Inc.

139 DB2 Table 8: DB2 Connection Properties Property StripNewlines OPTIONAL UseCurrentSchema OPTIONAL User WithHoldCursors OPTIONAL {true false} Specifies whether new-line characters in a database operation are sent to the DB2 server: true The DB2 driver removes all new-line characters from database operations. false If you know that the database operations used in your application do not contain new-line characters, setting StripNewLines to false eliminates parsing by the DB2 server and improves performance. The default is true. {true false} Specifies whether results are restricted to the tables in the current schema if a DatabaseMetaData.getTables call is called without specifying a schema or if the schema is specified as the wildcard character %. Restricting results to the tables in the current schema improves the performance of calls for gettables methods that do not specify a schema. This property determines behavior as follows: true Results that are returned from the gettables method are restricted to tables in the current schema. false Results of the gettables method are not restricted. The default is false. The case-sensitive user name used to connect to the DB2 database. {true false} Description Determines whether the cursor stays open on commit either DB2 closes all open cursors (Delete cursors) after a commit or leaves them open (Preserve cursors): true The cursor behavior is Preserve. false The cursor behavior is Delete. Rolling back a transaction closes all cursors regardless of how this property is specified. The default is true. Aurea Software, Inc. Confidential 139 Copyright 2013 Aurea, Inc.

140 Chapter 6: Driver Connection Properties and Data Types by Database Brand DB2 Driver Connection Failover Properties Table 9 summarizes the connection properties that control how connection failover works with the Database Service DB2 driver. See DB2 Driver Connection Properties on page 128 for details about configuring each property. Table 9: Connection Failover Properties for the DB2 Driver Property AlternateServers ConnectionRetryCount ConnectionRetryDelay DatabaseName LoadBalancing Description List of alternate database servers. An IP address or server name identifying each server is required. Port number and supported connection properties (DatabaseName or LocationName) are optional. If the port number is unspecified, the port specified for the primary server is used. If a port number is not specified for the primary server, a default port number of is used. Number of times the driver retries the list of database servers (primary and alternate) until a successful connection is established. The default is 0 (connection retry is not used). Wait interval, in seconds, used between attempts to connect to a list of database servers (primary and alternate) when the ConnectionRetryCount property is set to a positive integer. The default is 3. The name of the database to which you want to connect. Sets whether the driver will use client load balancing in its attempts to connect to the list of database servers (primary and alternate). If client load balancing is enabled, the driver uses a random pattern instead of a sequential pattern in its attempts to connect. The default is false (client load balancing is not used). See Client Load Balancing on page 113 and Connection Failover on page 114 for overviews of these features. Specifying Alternate Servers for the DB2 Driver The following connection URL for the DB2 driver specifies connection information for the primary and alternate servers: jdbc:aurea:db2://server1:50000;databasename=test; AlternateServers=(server2:50000;DatabaseName=TEST2, server3:50000;databasename=test3) In this example:...server1:50000;databasename=test... is the part of the connection URL that specifies connection information for the primary server. Alternate servers are specified using the AlternateServers property, in this example: Aurea Software, Inc. Confidential 140 Copyright 2013 Aurea, Inc.

141 DB2...;AlternateServers=(server2:50000;DatabaseName=TEST2, server3:50000;databasename=test3) You can specify the optional connection properties DatabaseName or LocationName for each alternate server entry. For example: jdbc:aurea:db2://server1:50000;databasename=test; AlternateServers=(server2:50000;DatabaseName=TEST2, server3:50000;databasename=test2) or jdbc:aurea:db2://server1:50000;locationname=test; AlternateServers=(server2:50000;LocationName=TEST2, server3:50000;locationname=test3) If you do not specify an optional connection property in an alternate server entry, the connection to that alternate server uses the property specified in the URL for the primary server. For example, if you specify DatabaseName=TEST for the primary server, but do not specify a database name in the alternate server entry as shown in the following URL, the driver uses the database name specified for the primary server and tries to connect to the TEST database on the alternate server: jdbc:aurea:db2://server1:50000;databasename=test; AlternateServers=(server2:50000,server3:50000) DB2 Driver Data Types Table 10 lists the data types supported by the DB2 driver and describes how they are mapped to JDBC data types. Table 10: DB2 Data Types DB2 Data Type JDBC Data Type Database Comments Bigint BIGINT Supported only for DB2 UDB 8.1. Blob BLOB Supported only for DB2 UDB 8.1, DB2 OS/390, and DB2 iseries V5R2. Char Char for Bit Data Clob Date CHAR BINARY CLOB DATE DBClob CLOB Supported only for DB2 UDB 8.1, DB2 7.x OS/390, and DB2 iseries V5R2. Decimal Double Float Integer DECIMAL DOUBLE FLOAT INTEGER Aurea Software, Inc. Confidential 141 Copyright 2013 Aurea, Inc.

142 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 10: DB2 Data Types DB2 Data Type JDBC Data Type Database Comments Long Varchar Long Varchar for Bit Data Numeric Real LONGVARCHAR LONGVARBINARY NUMERIC REAL Rowid VARBINARY Supported only for DB2 OS/390 and DB2 iseries V5R2. Smallint Time Timestamp Varchar Varchar for Bit Data SMALLINT TIME TIMESTAMP VARCHAR VARBINARY Informix The following sections describe settings for the Sonic Database Service Informix driver: Informix Driver Connection Properties on page 142 Informix Driver Connection Failover Properties on page 150 Specifying Alternate Servers for the Informix Driver on page 150 Informix Driver Data Types on page 151 Informix Driver Connection Properties Table 11 describes the JDBC connection properties supported by the Informix driver. The properties have the format: property=value Aurea Software, Inc. Confidential 142 Copyright 2013 Aurea, Inc.

143 Informix Note: All connection property names are case-insensitive. For example, Password is the same as password. Table 11: Informix Connection Properties Property AlternateServers OPTIONAL Description A comma-separated list of alternate database servers the driver will try to connect to if the primary database server is unavailable. The value of this property is a string that specifies each alternate server. This string has the format: (servername1[:port1][;property=value[;...]], servername2[:port2][;property=value[;...]],...) The server name is required for each alternate server entry. Port number and connection properties (property=value) are optional for each alternate server entry. If the port is unspecified, the port number of the primary server is used. Optional connection properties for the driver are DatabaseName and InformixServer. For example, the following URL: jdbc:aurea:informix://server1:2003; InformixServer=TestServer;DatabaseName=Test; AlternateServers=(server2:2003;InformixServer= TestServer2,server3:2003;InformixServer=TestServer3) contains alternate server entries for server2 and server3. The alternate server entries contain the optional InformixServer property.other properties are: ConnectionRetryCount Controls the number of times the driver retries the list of servers (primary and alternate) while attempting to establish a connection. ConnectionRetryDelay Sets the wait interval, in seconds, between retry attempts. LoadBalancing Controls the order in which the driver sequences through the list of servers (primary and alternate) while attempting to establish a connection. See Specifying Primary and Alternate Servers on page 117 for more information about specifying connection information for primary and alternate servers. CodePageOverride OPTIONAL The code page the driver uses when converting character data. The specified code page overrides the default database code page. All character data retrieved from or written to the database is converted using the specified code page. The value must be a string containing the name of a valid code page supported by your Java Virtual Machine, for example, CodePageOverride=CP950. Aurea Software, Inc. Confidential 143 Copyright 2013 Aurea, Inc.

144 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 11: Informix Connection Properties ConnectionRetryCount OPTIONAL Property The number of times the driver retries connections to a list of database servers (primary and alternate) until a successful connection is established. Valid values are 0 and any positive integer. If set to 0, the driver does not retry a connection to the list of database servers if a connection is not established on the driver s first pass through the list. The default is 0. For example, in the case where the following properties are specified: AlternateServers=(server2:2003,server3:2003,server4:2003)) and ConnectionRetryCount=1 Description if a connection is not successfully established on the driver s first pass through the list of database servers, the driver retries all the servers in the list only once. If an application sets a login timeout value, the login timeout takes precedence over this property. For example, if the login timeout expires, any connection attempts to alternate servers stop. If the LoadBalancing property is set to true, the driver may sequence through the list of servers (primary and alternate) in a different order each time. The ConnectionRetryDelay property specifies the wait interval, in seconds, used between retry attempts. See Connection Retry on page 116 for more information about specifying connection information for primary and alternate servers. Aurea Software, Inc. Confidential 144 Copyright 2013 Aurea, Inc.

145 Informix Table 11: Informix Connection Properties Property ConnectionRetryDelay OPTIONAL DatabaseName The number of seconds the driver will wait between connection retry attempts when ConnectionRetryCount is set to a positive integer. The default is 3. For example, in the case where the following properties are specified: AlternateServers=(server2:2003,server3:2003,server4:2003)) and ConnectionRetryCount=2 and ConnectionRetryDelay=3 Description if a connection is not successfully established on the driver s first pass through the list of database servers, the driver retries the list of servers twice. It waits 3 seconds between the first connection retry attempt and the second connection retry attempt. Note: If the LoadBalancing property is set to true, the driver may sequence through the list of servers (primary and alternate) in a different order each time. See Connection Retry on page 116 for more information about specifying connection information for primary and alternate servers. The name of the database to which you want to connect. If this property is not specified, a connection is established to the specified server without connecting to a particular database. A connection that is established to the server without connecting to the database allows an application to use CREATE DATABASE and DROP DATABASE database queries. These statements require that the driver cannot be connected to a database. An application can connect to the database after the connection is established by executing the DATABASE database query. Refer to your IBM Informix documentation for details on using the CREATE DATABASE, DROP DATABASE, and DATABASE database queries. Aurea Software, Inc. Confidential 145 Copyright 2013 Aurea, Inc.

146 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 11: Informix Connection Properties DBDate OPTIONAL Property Sets the Informix DBDate server environment variable for formatting literal date values when inserting, updating, and retrieving data in DATE columns. Using this property, you can customize: Order in which the month, day, and year fields appear in a date string Year field to contain two or four digits Separator character used to separate the date fields Valid values are: Description DMY2 Y4DM DMY4 Y4MD MDY2 Y2DM MDY4 Y4MD where D is a 2-digit day field, M is a 2-digit month field, Y2 is a 2-digit year field, and Y4 is a 4-digit year field. If unspecified, the format of literal date values conforms to the default server behavior. Optionally, a separator character may be specified as the last character of the value. Valid separator characters are: Hyphen (-) Period (.) Forward slash (/) If a separator is not specified, a forward slash (/) is used to separate the fields. For example, a value of Y4MD- specifies a date format that has a 4-digit year, followed by the month and then by the day. The date fields are separated by a hyphen (-). For example: This property does not affect the format of the string in the date escape syntax. Dates specified using the date escape syntax always use the JDBC escape format yyyy-mm-dd. DiagnosticFilename OPTIONAL InformixServer The path and filename of the file to which you want state information logged when an exception is generated. If the file does not already exist, it will be created the first time state information is generated. If this property is not specified, state information is not logged. When you contact Technical Support with a problem, you might be asked to generate a state information log. Your application should ensure that the driver is granted read/write permission to the specified file. The name of the Informix database server to which you want to connect. Aurea Software, Inc. Confidential 146 Copyright 2013 Aurea, Inc.

147 Informix Table 11: Informix Connection Properties InsensitiveResultSetBufferSi ze OPTIONAL Property {-1 0 x} Determines the amount of memory used by the driver to cache insensitive result set data: -1 The driver caches all insensitive result set data in memory. If the size of the result set exceeds available memory, an OutOfMemoryException is generated. Because the need to write result set data to disk is eliminated, the driver processes the data more efficiently. 0 The driver caches all insensitive result set data in memory, up to a maximum of 2 GB. If the size of the result set data exceeds available memory, the driver pages the result set data to disk. Because result set data may be written to disk, the driver may have to reformat the data to write it correctly to disk. x, where x is a positive integer The driver caches all insensitive result set data in memory, using this value to set the size (in KB) of the memory buffer for caching insensitive result set data. If the size of the result set data exceeds the buffer size, the driver pages the result set data to disk. Because the result set data may be written to disk, the driver may have to reformat the data to write it correctly to disk. Specifying a buffer size that is a power of 2 results in more efficient memory use. The default is 2048 (KB) Description Aurea Software, Inc. Confidential 147 Copyright 2013 Aurea, Inc.

148 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 11: Informix Connection Properties LoadBalancing OPTIONAL Property {true false} Description Determines whether the driver will use client load balancing in its attempts to connect to a list of database servers (primary and alternate). The list of alternate servers is specified by the AlternateServers property. The LoadBalancing property determines behavior as follows: true The driver uses client load balancing and attempts to connect to the database servers (primary and alternate servers) in random order. false Client load balancing is not used and the driver connects to each server based on their sequential order (primary server first, then, alternate servers in the order they are specified). The default is false. For example, in the case where the following properties are specified: AlternateServers=(server2:2003,server3:2003;server4:2003) and LoadBalancing=true the driver randomly selects from the list of primary and alternate servers which server to connect to first. If that connection fails, the driver again randomly selects from this list of servers until all servers in the list have been tried or a connection is successfully established. See Client Load Balancing on page 113 for more information about specifying connection information for primary and alternate servers. Aurea Software, Inc. Confidential 148 Copyright 2013 Aurea, Inc.

149 Informix Table 11: Informix Connection Properties MaxPooledStatements OPTIONAL Property Description The maximum number of pooled prepared statements for this connection. MaxPooledStatements property values determine behavior as follows: An integer greater than zero (0) Enables the Informix driver s internal prepared statement pooling, which is useful when the driver is not running from within an application server or another application that provides its own prepared statement pooling. The driver uses this value to cache a certain number of prepared statements created by an application. For example, if the value of this property is set to 20, the driver caches the last 20 prepared statements created by the application. A value greater than the number of prepared statements used by the application All prepared statements created by the application are cached. Because CallableStatement is a sub-class of PreparedStatement, CallableStatements also are pooled. The default is 0. Password User A case-insensitive password used to connect to your Informix database. A password is required only if security is enabled on your database. If so, contact your system administrator to obtain your password. The case-insensitive default user name used to connect to the Informix database. A user name is required only if security is enabled on your database. If so, contact your system administrator to obtain your user name. Aurea Software, Inc. Confidential 149 Copyright 2013 Aurea, Inc.

150 Chapter 6: Driver Connection Properties and Data Types by Database Brand Informix Driver Connection Failover Properties Table 12 summarizes the connection properties that control how connection failover works with the Database Service DB2 driver. See Informix Driver Connection Properties on page 142 for details about configuring each property. Table 12: Connection Failover Properties for the Informix Driver Property AlternateServers ConnectionRetryCo unt ConnectionRetryDel ay DatabaseName InformixServer LoadBalancing Description List of alternate database servers. An IP address or server name identifying each server is required. Port number and supported connection properties (DatabaseName or InformixServer) are optional. If the port number is unspecified, the port specified for the primary server is used. If a port number is not specified for the primary server, the port specified for the primary server is used. Number of times the driver retries the list of database servers (primary and alternate) until a successful connection is established. The default is 0 (connection retry is not used). Wait interval, in seconds, used between attempts to connect to a list of database servers (primary and alternate) when the ConnectionRetryCount property is set to a positive integer. The default is 3. The name of the database to which you want to connect. The name of the Informix database server to which you want to connect. Sets whether the driver will use client load balancing in its attempts to connect to the list of database servers (primary and alternate). If client load balancing is enabled, the driver uses a random pattern instead of a sequential pattern in its attempts to connect. The default is false (client load balancing is disabled). See Client Load Balancing on page 113 and Connection Failover on page 114 for overviews of these features. Specifying Alternate Servers for the Informix Driver The following connection URL for the Informix driver specifies connection information for the primary and alternate servers: jdbc:aurea:informix://server1:2003;informixserver=testserver; DatabaseName=TestServer; AlternateServers=(server2:2003;InformixServer=TestServer2,server3:2003) In this example:...server1:2003;informixserver=testserver;databasename=testserver... Aurea Software, Inc. Confidential 150 Copyright 2013 Aurea, Inc.

151 Informix is the part of the connection URL that specifies connection information for the primary server. Alternate servers are specified using the AlternateServers property, in this example: AlternateServers=(server2:2003;InformixServer=TestServer2,server3:2003) You can specify the optional connection properties DatabaseName or InformixServer for each alternate server entry. For example: jdbc:aurea:informix://server1:2003;informixserver=testserver; DatabaseName=TestServer; AlternateServers=(server2:2003;InformixServer=TestServer2; DatabaseName=TestServer,server3:2003) If you do not specify an optional connection property in an alternate server entry, the connection to that alternate server uses the property specified in the URL for the primary server. For example, if you specify InformixServer=TestServer and DatabaseName=TestServer for the primary server, but do not specify the InformixServer and DatabaseName properties in the alternate server entry as shown in the following URL, the driver uses the InformixServer and DatabaseName specified for the primary server and tries to connect to the TestServer database on the Informix server TestServer: jdbc:aurea:informix://server1:2003;informixserver=testserver; DatabaseName=TestServer;AlternateServers=(server2:2003,server3:2003) Informix Driver Data Types Table 13 lists the data types supported by the Informix driver and describes how they are mapped to JDBC data types. Table 13: Informix Data Types Informix Data Type JDBC Data Type blob boolean byte clob char date datetime hour to second datetime year to day datetime year to fraction(5) datetime year to second decimal float BLOB BIT LONGVARBINARY CLOB CHAR DATE TIME DATE TIMESTAMP TIMESTAMP DECIMAL FLOAT Aurea Software, Inc. Confidential 151 Copyright 2013 Aurea, Inc.

152 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 13: Informix Data Types Informix Data Type JDBC Data Type int8 integer lvarchar money nchar nvarchar serial serial8 smallfloat smallint text varchar BIGINT INTEGER VARCHAR DECIMAL CHAR VARCHAR INTEGER BIGINT REAL SMALLINT LONGVARCHAR VARCHAR Oracle The following sections describe settings for the Sonic Database Service Oracle driver: Oracle Driver Connection Properties on page 152 Oracle Driver Connection Failover Properties on page 162 Specifying Alternate Servers for the Oracle Driver on page 163 Oracle Driver Data Types on page 164 Oracle Driver Connection Properties Table 14 describes the JDBC connection properties supported by the Oracle driver. The properties have the format: property=value Aurea Software, Inc. Confidential 152 Copyright 2013 Aurea, Inc.

153 Oracle Note: All connection property names are case-insensitive. For example, Password is the same as password. Table 14: Connection Properties for the Oracle Driver Property AlternateServers OPTIONAL Description A comma-separated list of alternate database servers that the driver will try to connect to if the primary database server is unavailable. The value of this property is a string that specifies each alternate server. This string has the format: (servername1[:port1][;property=value[;...]], servername2[:port2][;property=value[;...]],...) The server name is required for each alternate server entry. Port number and connection properties (property=value) are optional for each alternate server entry. If the port is unspecified, the port number of the primary server is used. If the port number of the primary server is unspecified, the default port number of 1521 is used. Optional connection properties are ServiceName and SID. For example: jdbc:aurea:oracle://server1:1521; ServiceName=TEST;AlternateServers=(server2:1521; ServiceName=TEST2,server3:1521;ServiceName=TEST3) contains alternate server entries for server2 and server3. The alternate server entries contain the optional ServiceName property. Similarly, you can use the optional SID property instead. Other properties include: ConnectionRetryCount Controls the number of times the driver retries the list of servers (primary and alternate) while attempting to establish a connection. ConnectionRetryDelay Sets the wait interval, in seconds, between retry attempts. LoadBalancing Controls the order in which the driver sequences through the list of servers (primary and alternate) while attempting to establish a connection. If using a tnsnames.ora file to retrieve connection information, do not specify this property. See Specifying Primary and Alternate Servers on page 117 for more information about specifying connection information for primary and alternate servers. Aurea Software, Inc. Confidential 153 Copyright 2013 Aurea, Inc.

154 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 14: Connection Properties for the Oracle Driver BatchPerformanceWorkaround OPTIONAL Property {true false} Description Determines the method used to execute batch operations: true The native Oracle batch mechanism is used. The native Oracle batch mechanism does not return individual update counts for each statement or parameter set in the batch. For this reason, the driver returns a value of SUCCESS_NO_INFO (-2) for each entry in the returned update count array. false The JDBC 3.0-compliant batch mechanism is used. If an application can accept not receiving update count information, setting this property to true can significantly improve performance. The default is false. CatalogIncludesSynonyms DEPRECATED CatalogOptions OPTIONAL This property is recognized for compatibility with existing data sources, but we recommend that you use the CatalogOptions property instead to include synonyms in result sets. { } Determines the type of information included in result sets returned from catalog functions: 0 Result sets contain default DatabaseMetaData results. 1 Result sets contain Remarks information returned from the DatabaseMetaData methods: gettables and getcolumns. 2 Result sets contain synonyms returned from the DatabaseMetaData methods: getcolumns, getprocedures, getprocedurecolumns, and getindexinfo. 3 Result sets contain remarks and synonyms (as described in options 1 and 2). The default is 2. Aurea Software, Inc. Confidential 154 Copyright 2013 Aurea, Inc.

155 Oracle Table 14: Connection Properties for the Oracle Driver ConnectionRetryCount OPTIONAL Property The number of times the driver retries connections to a list of database servers (primary and alternate) until a successful connection is established. Valid values are 0 and any positive integer. If set to 0, the driver does not retry a connection to the list of database servers if a connection is not established on the driver s first pass through the list. The default is 0. For example, in the case where the following properties are specified: AlternateServers=(server2:1521,server3:1521,server4:1521) and ConnectionRetryCount=1 Description If a connection is not successfully established on the driver s first pass through the list of database servers, the driver retries all the servers in the list only once. If an application sets a login timeout value (for example, using DriverManager.loginTimeout), the login timeout takes precedence over this property. For example, if the login timeout expires, any connection attempts to alternate servers stop. If the LoadBalancing property also is specified, the driver may sequence through the list of servers (primary and alternate) in a different order each time. The ConnectionRetryDelay property specifies the wait interval, in seconds, used between attempts. See Connection Retry on page 116 for more information about specifying connection information for primary and alternate servers. Aurea Software, Inc. Confidential 155 Copyright 2013 Aurea, Inc.

156 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 14: Connection Properties for the Oracle Driver Property ConnectionRetryDelay OPTIONAL DiagnosticFilename OPTIONAL The number of seconds the driver waits before retrying connections to a list of database servers (primary and alternate) when ConnectionRetryCount is set to a positive integer. The default is 3. For example, in the case where the following properties are specified: AlternateServers=(server2:1521,server3:1521,server4:1521) and ConnectionRetryCount=2 and ConnectionRetryDelay=3 Description if a connection is not successfully established on the driver s first pass through the list of database servers, the driver retries the list of servers twice. The driver waits 3 seconds between the first connection retry attempt and the second connection retry attempt. If the LoadBalancing property also is specified, the driver may sequence through the list of servers (primary and alternate) in a different order each time. The ConnectionRetryCount property specifies the number of times the driver will attempt to connect to all the servers in the list of alternate servers. See Connection Retry on page 116 for more information about specifying connection information for primary and alternate servers. The path and filename of the file to which you want state information logged when an exception is generated. If the file does not already exist, it will be created the first time state information is generated. If this property is not specified, state information is not logged. When you contact Technical Support with a problem, you might be asked to generate a state information log. Your application should ensure that the driver is granted read/write permission to the specified file. Aurea Software, Inc. Confidential 156 Copyright 2013 Aurea, Inc.

157 Oracle Table 14: Connection Properties for the Oracle Driver Property Description FetchTSWTZasTimestamp OPTIONAL {true false} This property determines behavior as follows: true Allows column values with the TIMESTAMP WITH TIME ZONE data type (Oracle9i or higher) to be retrieved as a JDBC TIMESTAMP data type. false Column values with the TIMESTAMP WITH TIME ZONE data type must be retrieved as a string. The default is false. InsensitiveResultSetBufferSize OPTIONAL {-1 0 x} Determines the amount of memory used by the driver to cache insensitive result set data: -1 The driver caches all insensitive result set data in memory. If the size of the result set exceeds available memory, an OutOfMemoryException is generated. Because the need to write result set data to disk is eliminated, the driver processes the data more efficiently. 0 The driver caches all insensitive result set data in memory, up to a maximum of 2 GB. If the size of the result set data exceeds available memory, the driver pages the result set data to disk. Because result set data may be written to disk, the driver may have to reformat the data to write it correctly to disk. x, where x is a positive integer The driver caches all insensitive result set data in memory, using this value to set the size (in KB) of the memory buffer for caching insensitive result set data. If the size of the result set data exceeds the buffer size, the driver pages the result set data to disk. Because the result set data may be written to disk, the driver may have to reformat the data to write it correctly to disk. Specifying a buffer size that is a power of 2 results in more efficient memory use. The default is 2048 (KB). Aurea Software, Inc. Confidential 157 Copyright 2013 Aurea, Inc.

158 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 14: Connection Properties for the Oracle Driver LoadBalancing OPTIONAL Property {true false} Description Determines whether the driver will use client load balancing in its attempts to connect to a list of database servers (primary and alternate). The list of alternate servers is specified by the AlternateServers property. The LoadBalancing property determines behavior as follows: true Client load balancing is used and the driver attempts to connect to the list of database servers (primary and alternate servers) in random order. false Client load balancing is not used and the driver connects to each server based on their sequential order (primary server first, then, alternate servers in the order they are specified). The default is false. For example, in the case where the following properties are specified: AlternateServers=(server2:1521,server3:1521,server4:1521) and LoadBalancing=true the driver randomly selects from the list of primary and alternate servers which server to connect to first. If that connection fails, the driver again randomly selects from this list of servers until all servers in the list have been tried or a connection is successfully established. If using a tnsnames.ora file to retrieve connection information, do not specify this property. See Client Load Balancing on page 113 or more information about specifying connection information for primary and alternate servers. Aurea Software, Inc. Confidential 158 Copyright 2013 Aurea, Inc.

159 Oracle Table 14: Connection Properties for the Oracle Driver MaxPooledStatements OPTIONAL Property Description The maximum number of pooled prepared statements for this connection. MaxPooledStatements property values determine behavior as follows: An integer greater than zero (0) Enables the Oracle driver s internal prepared statement pooling, which is useful when the driver is not running from within an application server or another application that provides its own prepared statement pooling. The driver uses this value to cache a certain number of prepared statements created by an application. For example, if the value of this property is set to 20, the driver caches the last 20 prepared statements created by the application. A value greater than the number of prepared statements used by the application All prepared statements created by the application are cached. Because CallableStatement is a sub-class of PreparedStatement, CallableStatements also are pooled. The default is 0. Password A case-insensitive password used to connect to your Oracle database. A password is required only if security is enabled on your database. If so, contact your system administrator to obtain your password. Aurea Software, Inc. Confidential 159 Copyright 2013 Aurea, Inc.

160 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 14: Connection Properties for the Oracle Driver Property Description ServerType OPTIONAL ServiceName OPTIONAL {Shared Dedicated} Specifies whether the connection is established using a shared or dedicated server process (UNIX) or thread (Windows): Shared The server process to be used is retrieved from a pool. The socket connection between the client and server is made to a dispatcher process on the server. This setting allows there to be fewer processes than the number of connections, reducing the need for server resources. Use this value when a server must handle many users with fewer server resources. Dedicated A server process is created to service only that connection. When that connection ends, so does the process (UNIX) or thread (Windows). The socket connection is made directly between the application and the dedicated server process or thread. When connecting to UNIX servers, a dedicated server process can provide significant performance improvement, but uses more resources on the server. When connecting to Windows servers, the server resource penalty is insignificant. Use this value if you have a batch environment with low numbers of users. Unspecified The driver uses the server type set on the server. If using a tnsnames.ora file to provide connection information, do not specify this property. The database service name that specifies the database used for the connection. The service name is a string that is the global database name a name that typically comprises the database name and domain name. For example: sales.us.acme.com This property is useful to specify connections to an Oracle Real Application Clusters (RAC) system rather than a specific Oracle instance because the nodes in a RAC system share a common service name. If using a tnsnames.ora file to provide connection information, do not specify this property. SID OPTIONAL The Oracle System Identifier that refers to the instance of the Oracle database running on the server. This property is mutually exclusive with the ServiceName property. The default is ORCL, which is the default SID that is configured when installing your Oracle database. If using a tnsnames.ora file to provide connection information, do not specify this property. Aurea Software, Inc. Confidential 160 Copyright 2013 Aurea, Inc.

161 Oracle Table 14: Connection Properties for the Oracle Driver TNSNamesFile OPTIONAL Property The path and filename to the tnsnames.ora file from which connection information is retrieved. The tnsnames.ora file contains connection information that is mapped to Oracle net service names. Using a tnsnames.ora file to centralize connection information simplifies maintenance when changes occur. The value of this property must be a valid path and filename to a tnsnames.ora file. If you specify this property, you also must specify the TNSServerName property. If this property is specified, do not specify the following properties to prevent connection information conflicts: AlternateServers LoadBalancing PortNumber ServerName ServerType ServiceName SID Description If any of these properties are specified in addition to this property, the driver generates an exception. Aurea Software, Inc. Confidential 161 Copyright 2013 Aurea, Inc.

162 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 14: Connection Properties for the Oracle Driver TNSServerName OPTIONAL Property Description The Oracle net service name used to reference the connection information in a tnsnames.ora file. The value of this property must be a valid net service name entry in the tnsnames.ora file specified by the TNSNamesFile property. If this property is specified, you also must specify the TNSNamesFile property. If this property is specified, do not specify the following properties to prevent connection information conflicts: AlternateServers LoadBalancing PortNumber ServerName ServerType ServiceName SID If any of these properties are specified in addition to this property, the driver generates an exception. User The case-insensitive default user name used to connect to your Oracle database. A user name is required only if security is enabled on your database. If so, contact your system administrator to obtain your user name. Operating System authentication is not currently supported by the Oracle driver. Oracle Driver Connection Failover Properties Table 15 summarizes the connection properties that control how connection failover works with the Oracle driver. See Oracle Driver Connection Properties on page 152 for details about configuring each property. Table 15: Connection Failover Properties for the Oracle Driver Property AlternateServers ConnectionRetryCount Description List of alternate database servers. An IP address or server name identifying each server is required. Port number and the ServiceName or SID connection properties are optional. If the port number is unspecified, the port specified for the primary server is used. If a port number is not specified for the primary server, the default port number of 1521 is used. Number of times the driver retries the list of database servers (primary and alternate) until a successful connection is established. The default is 0 (connection retry is not used). Aurea Software, Inc. Confidential 162 Copyright 2013 Aurea, Inc.

163 Oracle Table 15: Connection Failover Properties for the Oracle Driver Property ConnectionRetryDelay LoadBalancing ServiceName SID Description Wait interval, in seconds, used between attempts to connect to a list of database servers (primary and alternate) when the ConnectionRetryCount property is set to a positive integer. The default is 3. Sets whether the driver will use client load balancing in its attempts to connect to the list of database servers (primary and alternate). If client load balancing is enabled, the driver uses a random pattern instead of a sequential pattern in its attempts to connect. The default is false (client load balancing is disabled). The database service name that specifies the database used for the connection. This property is mutually exclusive with the SID property. The Oracle System Identifier that refers to the instance of the Oracle database running on the server. The default is ORCL. This property is mutually exclusive with the ServiceName property. See Client Load Balancing on page 113 and Connection Failover on page 114 for overviews of these features. Specifying Alternate Servers for the Oracle Driver The following connection URL for the Oracle driver specifies connection information for the primary and alternate servers: jdbc:aurea:oracle://server1:1521;servicename=test; AlternateServers=(server2:1521;ServiceName=TEST2,server3:1521; ServiceName=TEST3) In this example:...server1:1521;servicename=test... is the part of the connection URL that specifies connection information for the primary server. Alternate servers are specified using the AlternateServers property, in this example:...;alternateservers=(server2:1521;servicename=test2, server3:50000;servicename=test3) You can specify the optional connection properties ServiceName or SID for each alternate server entry. These properties are mutually exclusive. For example: jdbc:aurea:oracle://server1:1521;servicename=test; AlternateServers=(server2:1521;ServiceName=TEST2,server3:1521) or Aurea Software, Inc. Confidential 163 Copyright 2013 Aurea, Inc.

164 Chapter 6: Driver Connection Properties and Data Types by Database Brand jdbc:aurea:oracle://server1:1521;sid=orcl; AlternateServers=(server2:1521;SID=ORCL2,server3:1521) If you do not specify an optional connection property in an alternate server entry, the connection to that alternate server uses the property specified in the URL for the primary server. For example, if you specify SID=ORCL for the primary server, but do not specify a SID in the alternate server entry as shown in the following URL, the driver uses the SID specified for the primary server and tries to connect to the ORCL database on the alternate server: jdbc:aurea:oracle://server1:1521;sid=orcl; AlternateServers=(server2:1521,server3:1521) Oracle Driver Data Types The following sections list data types supported by the Oracle driver, and describe the XMLType data type supported by Oracle9i and higher drivers. Oracle Data Types Table 16 lists the data types supported by the Oracle driver and describes how they are mapped to JDBC data types. Table 16: Oracle Data Types Oracle Database Oracle Data Type JDBC Data Type Oracle8i and higher BFILE BLOB BLOB CHAR CLOB DATE FLOAT(n) LONG long raw NCHAR NCLOB NUMBER (p, s) NUMBER NVARCHAR2 BLOB CHAR CLOB TIMESTAMP DOUBLE LONGVARCHAR LONGVARBINARY CHAR CLOB DECIMAL DOUBLE VARCHAR Aurea Software, Inc. Confidential 164 Copyright 2013 Aurea, Inc.

165 Oracle Table 16: Oracle Data Types Oracle Database Oracle Data Type JDBC Data Type Oracle9i and higher TIMESTAMP TIMESTAMP TIMESTAMP WITH LOCAL TIME ZONE TIMESTAMP WITH TIME ZONE VARCHAR2 XMLType TIMESTAMP VARCHAR VARCHAR CLOB Oracle10g only BINARY_FLOAT REAL BINARY_DOUBLE DOUBLE XMLType Data Type The Oracle driver supports tables containing columns specified as XMLType for Oracle9i and higher. The driver maps the Oracle XMLType data type to the JDBC CLOB data type. XMLType columns can be used in queries just like any other column type. The data from XMLType columns can be retrieved as a String, Clob, CharacterStream, or AsciiStream. When inserting or updating XMLType columns, the data to be inserted or updated must be in the form of an XMLType data type. Oracle provides the xmltype() function to construct an XMLType data object. The xmldata argument of the xmltype() function can be specified as a string literal or a parameter marker. If a parameter marker is used, the parameter value may be set using the setstring, setclob, setcharacterstream, or setasciistream methods. The following code inserts data into an XMLType column using a statement with a string literal as the xmldata argument of the xmltype() function: // Insert xml data as a literal String sql = "insert into XMLTypeTbl values (1, xmltype('" + "<emp><empno>123</empno><empname>mark</empname></emp>'))"; Statement stmt = con.createstatement(); stmt.executeupdate(sql); The following code inserts data into an XMLType column using a prepared statement: // Insert xml data as a String parameter String xmlstr = "<emp><empno>234</empno><empname>trish</empname></emp>"; String sql = "insert into XMLTypeTbl values (?, xmltype(?))"; PreparedStatement prepstmt = con.preparestatement(sql); prepstmt.setint(1, 2); prepstmt.setstring(2, xmlstr); prepstmt.executeupdate(); When the data from an XMLType column is retrieved as a Clob, the XMLType data cannot be updated using the Clob object. Calling the setstring, setcharacterstream, or setasciistream methods of a Clob object returned from an XMLType column generates an SQLException. Aurea Software, Inc. Confidential 165 Copyright 2013 Aurea, Inc.

166 Chapter 6: Driver Connection Properties and Data Types by Database Brand Microsoft SQL Server The following sections describe settings for the Sonic Database Service Microsoft SQL Server driver: Microsoft SQL Server Driver Connection Properties on page 166 Microsoft SQL Server Driver Connection Failover Properties on page 175 Specifying Alternate Servers for the Microsoft SQL Server Driver on page 176 Microsoft SQL Server Driver Data Types on page 177 Microsoft SQL Server Driver Connection Properties Table 17 describes the JDBC connection properties supported by the Microsoft SQL Server driver. The properties have the format: property=value Note: All connection property names are case-insensitive. For example, Password is the same as password. Table 17: Connection Properties for the Microsoft SQL Server Driver AlternateServers OPTIONAL Property Description A comma-separated list of alternate database servers that the driver will try to connect to if the primary database server is unavailable. The value of this property is a string that specifies each alternate server. This string has the format: (servername1[:port1][;property=value], servername2[:port2][;property=value],...) The server name is required for each alternate server entry. Port number and connection properties (property=value) are optional for each alternate server entry. If the port is unspecified, the port number specified for the primary server is used. If a port number for the primary server is unspecified, the default port number of 1433 is used. The driver allows only one optional connection property, DatabaseName. Aurea Software, Inc. Confidential 166 Copyright 2013 Aurea, Inc.

167 Microsoft SQL Server Table 17: Connection Properties for the Microsoft SQL Server Driver Property Description For example: jdbc:aurea:sqlserver://server1:1433; DatabaseName=TEST;AlternateServers=(server2:1433; DatabaseName=TEST2,server3:1433;DatabaseName=TEST3) contains alternate server entries for server2 and server3. The alternate server entries contain the optional DatabaseName property. Other properties are: ConnectionRetryCount Controls the number of times the driver retries the list of servers (primary and alternate) while attempting to establish a connection. ConnectionRetryDelay Sets the wait interval, in seconds, between retry attempts. LoadBalancing Controls the order in which the driver sequences through the list of servers (primary and alternate) while attempting to establish a connection. See Specifying Primary and Alternate Servers on page 117 or more information about specifying connection information for primary and alternate servers. AlwaysReportTriggerResults OPTIONAL {true false} Determines how the driver reports results generated by database triggers (procedures that are stored in the database and executed, or fired, when a table is modified): true The driver returns all results, including results generated by triggers. Multiple trigger results are returned one at a time. Use the Statement.getMoreResults method to retrieve individual trigger results. Warnings and errors are reported in the results as they are encountered. false The driver does not report trigger results if the statement is a single Insert, Update, or Delete statement. In this case, the only result that is returned is the update count generated by the statement that was executed (if errors do not occur). Although trigger results are ignored, any errors generated by the trigger are reported. Any warnings generated by the trigger are enqueued. If errors are reported, the update count is not reported. The default is false. Aurea Software, Inc. Confidential 167 Copyright 2013 Aurea, Inc.

168 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 17: Connection Properties for the Microsoft SQL Server Driver CodePageOverride OPTIONAL Property Description Specifies the code page the driver uses when converting character data. The specified code page overrides the default database code page. All character data retrieved from or written to the database is converted using the specified code page. The value must be a string containing the name of a valid code page supported by your Java Virtual Machine, for example, CodePageOverride=CP950. If a value is set for the CodePageOverride property and the SendStringParametersAsUnicode property is set to true, the driver ignores the SendStringParametersAsUnicode property and generates a warning. The driver always sends parameters using the code page specified by CodePageOverride if this property is specified. ConnectionRetryCount OPTIONAL The number of times the driver retries connections to a list of database servers (primary and alternate) until a successful connection is established. Valid values are 0 and any positive integer. If set to 0, the driver does not retry a connection to the list of database servers if a connection is not established on the driver s first pass through the list. The default is 0. For example, in the case where the following properties are specified: AlternateServers=(server2:1433,server3:1433,server4:1433) and ConnectionRetryCount=1 If a connection is not successfully established on the driver s first pass through the list of database servers, the driver retries all the servers in the list only once. If an application sets a login timeout value, the login timeout takes precedence over this property. For example, if the login timeout expires, any connection attempts to alternate servers stop. If the LoadBalancing property is set to true, the driver may sequence through the list of servers (primary and alternate) in a different order each time. The ConnectionRetryDelay property specifies the wait interval, in seconds, used between attempts. See Connection Retry on page 116 for more information about specifying connection information for primary and alternate servers. Aurea Software, Inc. Confidential 168 Copyright 2013 Aurea, Inc.

169 Microsoft SQL Server Table 17: Connection Properties for the Microsoft SQL Server Driver ConnectionRetryDelay OPTIONAL Property Description The number of seconds the driver waits before retrying a list of database servers (primary and alternate) when ConnectionRetryCount is set to a positive integer. The default is 3. For example, in the case where the following properties are specified: AlternateServers=(server2:1433,server3:1433,server4:1433) and ConnectionRetryCount=2 and ConnectionRetryDelay=3 if a connection is not successfully established on the driver s first pass through the list of database servers, the driver retries the list of servers twice. It waits 3 seconds between the first connection retry attempt and the second connection retry attempt. Note: If the LoadBalancing property is set to true, the driver may sequence through the list of servers (primary and alternate) in a different order each time. See Connection Retry on page 116 for more information about specifying connection information for primary and alternate servers. DatabaseName OPTIONAL DiagnosticFilename OPTIONAL HostProcess OPTIONAL The name of the database to which you want to connect. The path and filename of the file to which you want state information logged when an exception is generated. If the file does not already exist, it will be created the first time state information is generated. If this property is not specified, state information is not logged. When you contact Technical Support with a problem, you might be asked to generate a state information log. Your application should ensure that the driver is granted read/write permission to the specified file. The process ID of the application connecting to Microsoft SQL Server. The value of this property appears in the hostprocess column of the master.dbo.sysprocesses table and may be useful for database administration purposes. The default is 0. Aurea Software, Inc. Confidential 169 Copyright 2013 Aurea, Inc.

170 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 17: Connection Properties for the Microsoft SQL Server Driver InsensitiveResultSetBufferSize OPTIONAL Property {-1 0 x} Determines the amount of memory used by the driver to cache insensitive result set data. This property must have one of the following values: -1 The driver caches all insensitive result set data in memory. If the size of the result set exceeds available memory, an OutOfMemoryException is generated. Because the need to write result set data to disk is eliminated, the driver processes the data more efficiently. 0 The driver caches all insensitive result set data in memory, up to a maximum of 2 GB. If the size of the result set data exceeds available memory, the driver pages the result set data to disk. Because result set data may be written to disk, the driver may have to reformat the data to write it correctly to disk. x, where x is a positive integer The driver caches all insensitive result set data in memory, using this value to set the size (in KB) of the memory buffer for caching insensitive result set data. If the size of the result set data exceeds the buffer size, the driver pages the result set data to disk. Because the result set data may be written to disk, the driver may have to reformat the data to write it correctly to disk. Specifying a buffer size that is a power of 2 results in more efficient memory use. The default is 2048 (KB). Description Aurea Software, Inc. Confidential 170 Copyright 2013 Aurea, Inc.

171 Microsoft SQL Server Table 17: Connection Properties for the Microsoft SQL Server Driver LoadBalancing OPTIONAL Property {true false} Description Determines whether the driver will use client load balancing in its attempts to connect to a list of database servers (primary and alternate). The list of alternate servers is specified by the AlternateServers property. The LoadBalancing property determines behavior as follows: true Client load balancing is used and the driver attempts to connect to the list of database servers (primary and alternate servers) in random order. false Client load balancing is not used and the driver connects to each server based on their sequential order (primary server first, then, alternate servers in the order they are specified). The default is false. For example, in the case where the following properties are specified: AlternateServers=(server2:1433,server3:1433,server4:1433) and LoadBalancing=true the driver randomly selects from the list of primary and alternate servers which server to connect to first. If that connection fails, the driver again randomly selects from this list of servers until all servers in the list have been tried or a connection is successfully established. See Client Load Balancing on page 113 for more information about specifying connection information for primary and alternate servers. Aurea Software, Inc. Confidential 171 Copyright 2013 Aurea, Inc.

172 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 17: Connection Properties for the Microsoft SQL Server Driver MaxPooledStatements OPTIONAL Property Description The maximum number of pooled prepared statements for this connection. MaxPooledStatements property values determine behavior as follows: An integer greater than zero (0) Enables the SQL Server driver s internal prepared statement pooling, which is useful when the driver is not running from within an application server or another application that provides its own prepared statement pooling. The driver uses this value to cache a certain number of prepared statements created by an application. For example, if the value of this property is set to 20, the driver caches the last 20 prepared statements created by the application. A value greater than the number of prepared statements used by the application All prepared statements created by the application are cached. Because CallableStatement is a sub-class of PreparedStatement, CallableStatements also are pooled. The default is 0. NetAddress OPTIONAL The Media Access Control (MAC) address of the network interface card of the application connecting to Microsoft SQL Server. The value of this property appears in the net_address column of the master.dbo.sysprocesses table and is used for database administration purposes. The default is Password OPTIONAL ProgramName OPTIONAL A case-insensitive password used to connect to your Microsoft SQL Server database. If a user name is not specified, the driver will use Windows authentication when connecting to Microsoft SQL Server. In this case, a password is not required. If a password is required, contact your system administrator to obtain your password. Refer to the Aurea Sonic Installation and Upgrade Guide for product requirements and configuration that must be met to use Windows authentication with the SQL Server driver. The name of the application connecting to Microsoft SQL Server. The value of this property appears in the program_name column of the master.dbo.sysprocesses table and is useful for database administration purposes. The default is an empty string. Aurea Software, Inc. Confidential 172 Copyright 2013 Aurea, Inc.

173 Microsoft SQL Server Table 17: Connection Properties for the Microsoft SQL Server Driver SelectMethod OPTIONAL Property {direct cursor} Description A hint to the driver that determines whether the driver requests a database cursor for Select statements. Performance and behavior of the driver are affected by this property, which is defined as a hint because the driver might not always be able to satisfy the requested method. Direct When the driver uses the Direct method, the database server sends the complete result set in a single response to the driver when responding to a query. A server-side database cursor is not created. Typically, responses are not cached by the driver. Using this method, the driver must process all the response to a query before another query is submitted. If another query is submitted (using a different statement on the same connection, for example), the driver caches the response to the first query before submitting the second query. Typically, the Direct method performs better than the Cursor method. Cursor When the driver uses the Cursor method, a server-side cursor is requested. The rows are retrieved from the server in blocks when returning forward-only result sets. The JDBC Statement method setfetchsize can be used to control the number of rows that are retrieved for each request. Performance tests show that the value of setfetchsize significantly impacts performance when the Cursor method is used. There is no simple rule for determining the setfetchsize value that you should use. We recommend that you experiment with different setfetchsize values to determine which value gives the best performance for your application. The Cursor method is useful for queries that produce a large amount of data, particularly if multiple open result sets are used. The default is Direct. Aurea Software, Inc. Confidential 173 Copyright 2013 Aurea, Inc.

174 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 17: Connection Properties for the Microsoft SQL Server Driver SendStringParametersAsUnicode OPTIONAL Property {true false} Description Determines whether string parameters are sent to the Microsoft SQL Server database in Unicode or in the default character encoding of the database: true String parameters are sent to Microsoft SQL Server in Unicode. false String parameters are sent in the default encoding, which can improve performance because the server does not need to convert Unicode characters to the default encoding. You should, however, use default encoding only if the parameter string data you specify is the same as the default encoding of the database. The default is true. If a value is specified for the CodePageOverride property and this property is set to true, this property is ignored and a warning is generated. User OPTIONAL UseServerSideUpdatableCursors The case-insensitive user name used to connect to your Microsoft SQL Server database. If a user name is not specified, the driver uses Windows authentication when connecting to the database server. In this case, a user name is not required. If a user name is required, contact your system administrator to obtain your user name. Refer to the Aurea Sonic Installation and Upgrade Guide for product and configuration requirements that must be met to use Windows authentication with the SQL Server driver. {true false} Determines whether the driver uses server-side cursors when an updatable result set is requested: true Server-side updatable cursors are created when an updatable result set is requested. false The default updatable result set functionality is used. The default is false. WSID OPTIONAL The workstation ID, which typically is the network name of the computer on which the application resides. If specified, this value is stored in the hostname column of the master.dbo.sysprocesses table and can be returned by sp_who and the Transact-SQL HOST_NAME function. The value is useful for database administration purposes. The default is an empty string. Aurea Software, Inc. Confidential 174 Copyright 2013 Aurea, Inc.

175 Microsoft SQL Server Table 17: Connection Properties for the Microsoft SQL Server Driver XATransactionGroup OPTIONAL Property Description The transaction group ID that identifies any transactions initiated by the connection. This ID can be used for distributed transaction cleanup purposes. You can use the XAResource.recover method to roll back any transactions left in an unprepared state. When you call XAResource.recover, any transactions that match the ID on the connection used to call XAResource.recover are rolled back. For example, if you specify XATransactionGroup=ACCT200 and call XAResource.recover on the same connection, any transactions left in an unprepared state identified by the transaction group ID of ACCT200 are rolled back. Microsoft SQL Server Driver Connection Failover Properties Table 18 summarizes the connection properties that control how connection failover works with the Database Service SQL Server driver. See Microsoft SQL Server Driver Connection Properties on page 166 for details about configuring each property. Table 18: Connection Failover Properties for the Microsoft SQL Server Driver Property AlternateServers ConnectionRetryCount ConnectionRetryDelay DatabaseName LoadBalancing Description List of alternate database servers. An IP address or server name identifying each server is required. Port number and supported connection properties (DatabaseName) are optional. If the port number is unspecified, the port number specified for the primary server is used. If a port number is unspecified for the primary server, the default port number of 1433 is used. Number of times the driver retries the list of database servers (primary and alternate) until a successful connection is established. The default is 0 (connection retry is not used). Wait interval, in seconds, used between attempts to connect to a list of database servers (primary and alternate) when the ConnectionRetryCount property is set to a positive integer. The default is 3. The name of the database to which you want to connect. Sets whether the driver will use client load balancing in its attempts to connect to the list of database servers (primary and alternate). If client load balancing is enabled, the driver uses a random pattern instead of a sequential pattern in its attempts to connect. The default is false (client load balancing is disabled). See Client Load Balancing on page 113 and Connection Failover on page 114 for overviews of these features. Aurea Software, Inc. Confidential 175 Copyright 2013 Aurea, Inc.

176 Chapter 6: Driver Connection Properties and Data Types by Database Brand Specifying Alternate Servers for the Microsoft SQL Server Driver The following connection URL for the Microsoft SQL Server driver specifies connection information for the primary and alternate servers: jdbc:aurea:sqlserver://server1:1433;databasename=test; AlternateServers=(server2:1433;DatabaseName=TEST2,server3:1433; DatabaseName=TEST3) In this example:...server1:1433;databasename=test... is the part of the connection URL that specifies connection information for the primary server. Alternate servers are specified using the AlternateServers property, in this example:...;alternateservers=(server2:1433;databasename=test2,server3:1433; DatabaseName=TEST3) You can specify an optional instance property for each alternate server entry. For example: jdbc:aurea:sqlserver://server1:1433;databasename=test; AlternateServers=(server2:1433;DatabaseName=TEST2,server3:1433; DatabaseName=TEST3) or, if connecting to named instances: jdbc:aurea:sqlserver://server1\\instance1:1433;databasename=test; AlternateServers=(server2\\instance2:1433;DatabaseName=TEST2, server3\\instance3:1433;databasename=test3) If you do not specify an optional connection property in an alternate server entry, the connection to that alternate server uses the property specified in the URL for the primary server. For example, if you specify DatabaseName=TestServer for the primary server, but do not specify the InformixServer and DatabaseName properties in the alternate server entry as shown in the following URL, the driver uses the InformixServer and DatabaseName specified for the primary server and tries to connect to the TEST database on the alternate server: jdbc:aurea:sqlserver://server1:1433;databasename=test; AlternateServers=(server2:1433,server3:1433) The SQL Server driver also allows you to specify connections to named instances, multiple instances of a Microsoft SQL Server database running concurrently on the same server. If specifying named instances for the primary and alternate servers, the connection URL would look like this: jdbc:aurea:sqlserver://server1\\instance1; AlternateServers=(server2\\instance2:1433;DatabaseName=TEST2, server3\\instance3:1433;databasename=test3) Aurea Software, Inc. Confidential 176 Copyright 2013 Aurea, Inc.

177 Microsoft SQL Server Microsoft SQL Server Driver Data Types Table 19 lists the data types supported by the Microsoft SQL Server driver and describes how they are mapped to JDBC data types. These data types are for SQL Server 7 and 2000 unless otherwise noted in the table. Table 19: Microsoft SQL Server Driver Data Types Microsoft SQL Server DataBase Microsoft SQL Server Data Type JDBC Data Type SQL Server 7 and 2000 binary BINARY bit char datetime decimal decimal() identity float image int int identity money nchar ntext numeric numeric() identity nvarchar real smalldatetime smallint BIT CHAR TIMESTAMP DECIMAL DECIMAL FLOAT LONGVARBINARY INTEGER INTEGER DECIMAL CHAR LONGVARCHAR NUMERIC NUMERIC VARCHAR REAL TIMESTAMP SMALLINT Aurea Software, Inc. Confidential 177 Copyright 2013 Aurea, Inc.

178 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 19: Microsoft SQL Server Driver Data Types Microsoft SQL Server DataBase Microsoft SQL Server Data Type JDBC Data Type SQL Server 7 and 2000 smallint identity SMALLINT smallmoney sysname text timestamp tinyint tinyint identity uniqueidentifier varbinary varchar DECIMAL VARCHAR LONGVARCHAR BINARY TINYINT TINYINT CHAR VARBINARY VARCHAR SQL Server 2000 only bigint BIGINT bigint identity sql_variant BIGINT VARCHAR Sybase The following sections describe settings for the Sonic Database Service Sybase driver: Sybase Driver Connection Properties on page 178 Sybase Driver Connection Failover Properties on page 187 Specifying Alternate Servers for the Sybase Driver on page 188 Sybase Driver Data Types on page 189 Sybase Driver Connection Properties Table 20 describes the JDBC connection properties supported by the Sybase driver. The properties have the format: property=value Note: All connection property names are case-insensitive. For example, Password is the same as password. Aurea Software, Inc. Confidential 178 Copyright 2013 Aurea, Inc.

179 Sybase Table 20: Connection Properties for the Sybase Driver Property AlternateServers OPTIONAL Description A comma-separated list of alternate database servers that the driver will try to connect to if the primary database server is unavailable. The value of this property is a string that specifies each alternate server. This string has the format: (servername1[:port1][;property=value], servername2[:port2][;property=value],...) The server name is required for each alternate server entry. Port number and connection properties (property=value) are optional for each alternate server entry. If the port is unspecified, the port number of the primary server is used. The driver only allows one optional connection property, DatabaseName. For example: jdbc:aurea:sybase://server1:4100; DatabaseName=TEST;AlternateServers=(server2:4100; DatabaseName=TEST2,server3:4100;DatabaseName=TEST3) contains alternate server entries for server2 and server3. The alternate server entries contain the optional DatabaseName property. Other properties are: ConnectionRetryCount Controls the number of times the driver retries the list of servers (primary and alternate) while attempting to establish a connection. ConnectionRetryDelay Sets the wait interval, in seconds, between retry attempts. LoadBalancing Controls the order in which the driver sequences through the list of servers (primary and alternate) while attempting to establish a connection. See Specifying Primary and Alternate Servers on page 117 for more information about specifying connection information for primary and alternate servers BatchPerformanceWorkaround OPTIONAL {true false} Determines the method used to execute batch operations: true The native Sybase batch mechanism is used. false The JDBC 3.0-compliant batch mechanism is used. In most cases, using the native Sybase batch functionality provides significantly better performance, but the driver may not always be able to return update counts for the batch. The default is false. Aurea Software, Inc. Confidential 179 Copyright 2013 Aurea, Inc.

180 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 20: Connection Properties for the Sybase Driver Property CodePageOverride OPTIONAL ConnectionRetryCount OPTIONAL Specifies the code page the driver uses when converting character data. The specified code page overrides the default database code page. All character data retrieved from or written to the database is converted using the specified code page. The value must be a string containing the name of a valid code page supported by your Java Virtual Machine, for example, CodePageOverride=CP950. The number of times the driver retries connections to a list of database servers (primary and alternate) until a successful connection is established. Valid values are 0 and any positive integer. If set to 0, the driver does not retry a connection to the list of database servers if a connection is not established on the driver s first pass through the list. The default is 0. For example, in the case where the following properties are specified: AlternateServers=(server2:4100,server3:4100,server4:4100) and ConnectionRetryCount=1 Description If a connection is not successfully established on the driver s first pass through the list of database servers, the driver retries all the servers in the list only once. If an application sets a login timeout value, the login timeout takes precedence over this property. For example, if the login timeout expires, any connection attempts to alternate servers stop. If the LoadBalancing property is set to true, the driver may sequence through the list of servers (primary and alternate) in a different order each time. The ConnectionRetryDelay property specifies the wait interval, in seconds, used between attempts. See Connection Retry on page 116 for more information about specifying connection information for primary and alternate servers. Aurea Software, Inc. Confidential 180 Copyright 2013 Aurea, Inc.

181 Sybase Table 20: Connection Properties for the Sybase Driver Property ConnectionRetryDelay OPTIONAL DatabaseName OPTIONAL DiagnosticFilename OPTIONAL The number of seconds the driver waits before retrying connections to a list of database servers (primary and alternate) when ConnectionRetryCount is set to a positive integer. The default is 3. For example, in the case where the following properties are specified: AlternateServers=(server2:4100,server3:4100,server4:4100) and ConnectionRetryCount=2 and ConnectionRetryDelay=3 Description if a connection is not successfully established on the driver s first pass through the list of database servers, the driver retries the list of servers twice. It waits 3 seconds between the first connection retry attempt and the second connection retry attempt. If the LoadBalancing property is set to true, the driver may sequence through the list of servers (primary and alternate) in a different order each time. See Connection Retry on page 116 for more information about specifying connection information for primary and alternate servers. The name of the database to which you want to connect. The path and filename of the file to which you want state information logged when an exception is generated. If the file does not already exist, it will be created the first time state information is generated. If this property is not specified, state information is not logged. When you contact Technical Support with a problem, you might be asked to generate a state information log. Your application should ensure that the driver is granted read/write permission to the specified file. Aurea Software, Inc. Confidential 181 Copyright 2013 Aurea, Inc.

182 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 20: Connection Properties for the Sybase Driver InsensitiveResultSetBufferSize OPTIONAL Property {-1 0 x} Determines the amount of memory used by the driver to cache insensitive result set data. It must have one of the following values: -1 The driver caches all insensitive result set data in memory. If the size of the result set exceeds available memory, an OutOfMemoryException is generated. Because the need to write result set data to disk is eliminated, the driver processes the data more efficiently. 0 The driver caches all insensitive result set data in memory, up to a maximum of 2 GB. If the size of the result set data exceeds available memory, the driver pages the result set data to disk. Because result set data may be written to disk, the driver may have to reformat the data to write it correctly to disk. x, where x is a positive integer The driver caches all insensitive result set data in memory, using this value to set the size (in KB) of the memory buffer for caching insensitive result set data. If the size of the result set data exceeds the buffer size, the driver pages the result set data to disk. Because the result set data may be written to disk, the driver may have to reformat the data to write it correctly to disk. Specifying a buffer size that is a power of 2 results in more efficient memory use. The default is 2048 (KB). Description Aurea Software, Inc. Confidential 182 Copyright 2013 Aurea, Inc.

183 Sybase Table 20: Connection Properties for the Sybase Driver LoadBalancing OPTIONAL Property {true false} Description Determines whether the driver will use client load balancing in its attempts to connect to a list of database servers (primary and alternate). The list of alternate servers is specified by the AlternateServers property. The LoadBalancing property determines behavior as follows: true Client load balancing is used and the driver attempts to connect to the list of database servers (primary and alternate servers) in random order. false Client load balancing is not used and the driver connects to each server based on their sequential order (primary server first, then, alternate servers in the order they are specified). The default is false. For example, in the case where the following properties are specified: AlternateServers=(server2:4100,server3:4100,server4:4100) and LoadBalancing=true the driver randomly selects from the list of primary and alternate servers which server to connect to first. If that connection fails, the driver again randomly selects from this list of servers until all servers in the list have been tried or a connection is successfully established. See Client Load Balancing on page 113 for more information about specifying connection information for primary and alternate servers. Aurea Software, Inc. Confidential 183 Copyright 2013 Aurea, Inc.

184 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 20: Connection Properties for the Sybase Driver MaxPooledStatements OPTIONAL Property Description The maximum number of pooled prepared statements for this connection. MaxPooledStatements property values determine behavior as follows: An integer greater than zero (0) Enables the Sybase driver s internal prepared statement pooling, which is useful when the driver is not running from within an application server or another application that provides its own prepared statement pooling. The driver uses this value to cache a certain number of prepared statements created by an application. For example, if the value of this property is set to 20, the driver caches the last 20 prepared statements created by the application. A value greater than the number of prepared statements used by the application All prepared statements created by the application are cached. Because CallableStatement is a sub-class of PreparedStatement, CallableStatements also are pooled. The default is 0. Password The case-sensitive password used to connect to your Sybase database. A password is required only if security is enabled on your database. If so, contact your system administrator to get your password. Aurea Software, Inc. Confidential 184 Copyright 2013 Aurea, Inc.

185 Sybase Table 20: Connection Properties for the Sybase Driver PrepareMethod OPTIONAL Property Description {StoredProc StoredProclfParam Direct} Determines whether stored procedures are created on the server for prepared statements: StoredProc A stored procedure is created when the statement is prepared and is executed when the prepared statement is executed. StoredProcIfParam A stored procedure is created only if the prepared statement contains one or multiple parameter markers. In this case, it is created when the statement is prepared and is executed when the prepared statement is executed. If the statement does not contain parameter markers, a stored procedure is not created and the statement is executed directly. Direct A stored procedure is not created for the prepared statement and the statement is executed directly. A stored procedure might be created if parameter metadata is requested. The default is StoredProclfParam. Setting this property to StoredProc or StoredProclfParam can improve performance if your application executes prepared statements multiple times because, once created, executing a stored procedure is faster than executing a single database query. If a prepared statement is only executed once or is never executed, performance can decrease because creating a stored procedure incurs more overhead on the server than simply executing a single database query. Setting this property to Direct should be used if your application does not execute prepared statements multiple times. Aurea Software, Inc. Confidential 185 Copyright 2013 Aurea, Inc.

186 Chapter 6: Driver Connection Properties and Data Types by Database Brand Table 20: Connection Properties for the Sybase Driver SelectMethod OPTIONAL Property {Direct Cursor} Description A hint to the driver that determines whether the driver requests a database cursor for Select statements. Performance and behavior of the driver are affected by this property, which is defined as a hint because the driver may not always be able to satisfy the requested method. Direct When the driver uses the Direct method, the database server sends the complete result set in a single response to the driver when responding to a query. A server-side database cursor is not created. Typically, responses are not cached by the driver. Using this method, the driver must process all the response to a query before another query is submitted. If another query is submitted (using a different statement on the same connection, for example), the driver caches the response to the first query before submitting the second query. Typically, the Direct method performs better than the Cursor method. Cursor When the driver uses the Cursor method, a server-side database cursor is requested. The rows are retrieved from the server in blocks when returning forward-only result sets. The JDBC Statement method setfetchsize can be used to control the number of rows that are retrieved for each request. Performance tests show that the value of setfetchsize significantly impacts performance when the Cursor method is used. There is no simple rule for determining the setfetchsize value that you should use. We recommend that you experiment with different setfetchsize values to find out which value gives the best performance for your application. The Cursor method is useful for queries that produce a large amount of data, particularly if multiple open result sets are used. The default is Direct. User The case-insensitive user name used to connect to your Sybase database. A user name is required only if security is enabled on your database. If so, contact your system administrator to get your user name. Aurea Software, Inc. Confidential 186 Copyright 2013 Aurea, Inc.

187 Sybase Sybase Driver Connection Failover Properties Table 21 summarizes the connection properties that control how connection failover works with the Database Service Sybase driver. See Sybase Driver Connection Properties on page 178 for details about configuring each property. Table 21: Connection Failover Properties for the Sybase Driver Property AlternateServers ConnectionRetryCount ConnectionRetryDelay DatabaseName LoadBalancing Description List of alternate database servers. An IP address or server name identifying each server is required. Port number and the DatabaseName connection property are optional. If the port number is unspecified, the port number specified for the primary server is used. If a port number is unspecified for the primary server, the port number specified for the primary server is used. Number of times the driver retries the list of database servers (primary and alternate) until a successful connection is established. The default is 0 (connection retry is not used). Wait interval, in seconds, used between attempts to connect to a list of database servers (primary and alternate) when the ConnectionRetryCount property is set to a positive integer. The default is 3. The name of the database to which you want to connect. Sets whether the driver will use client load balancing in its attempts to connect to the list of database servers (primary and alternate). If client load balancing is enabled, the driver uses a random pattern instead of a sequential pattern in its attempts to connect. The default is false (client load balancing is disabled). See Client Load Balancing on page 113 and Connection Failover on page 114 for overviews of these features. Aurea Software, Inc. Confidential 187 Copyright 2013 Aurea, Inc.

188 Chapter 6: Driver Connection Properties and Data Types by Database Brand Specifying Alternate Servers for the Sybase Driver The following connection URL for the Sybase driver specifies connection information for the primary and alternate servers: jdbc:aurea:sybase://server1:4100;databasename=test; AlternateServers=(server2:4100;DatabaseName=TEST2,server3:4100; DatabaseName=TEST3) In this example:...server1:4100;databasename=test... is the part of the connection URL that specifies connection information for the primary server. Alternate servers are specified using the AlternateServers property, in this example:...;alternateservers=(server2:4100;databasename=test2, server3:4100;databasename=test3) The property property=value is optional for each alternate server entry. For example: jdbc:aurea:sybase://server1:4100;databasename=test; AlternateServers=(server2:4100;DatabaseName=TEST2,server3:4100) If you do not specify an optional connection property in an alternate server entry, the connection to that alternate server uses the property specified in the URL for the primary server. For example, if you specify DatabaseName=TEST for the primary server, but do not specify a database name in the alternate server entry as shown in the following URL, the driver tries to connect to the TEST database on the alternate server: jdbc:aurea:sybase://server1:4100;databasename=test; AlternateServers=(server2:4100,server3:4100) Aurea Software, Inc. Confidential 188 Copyright 2013 Aurea, Inc.

189 Sybase Sybase Driver Data Types Table 22 lists the data types supported by the Sybase driver and describes how they are mapped to JDBC data types. Table 22: Sybase Driver Data Types Sybase DataBase Sybase Data Type JDBC Data Type Sybase 11.5 and higher binary BINARY Sybase 12.5 and only bit char datetime decimal decimal() identity float image int money nchar numeric nvarchar real smalldatetime smallint smallmoney sysname text timestamp tinyint varbinary varchar date time unichar univarchar BIT CHAR TIMESTAMP DECIMAL DECIMAL FLOAT LONGVARBINARY INTEGER DECIMAL CHAR NUMERIC VARCHAR REAL TIMESTAMP SMALLINT DECIMAL VARCHAR LONGVARCHAR VARBINARY TINYINT VARBINARY VARCHAR DATE TIME CHAR VARCHAR Aurea Software, Inc. Confidential 189 Copyright 2013 Aurea, Inc.

190 Chapter 6: Driver Connection Properties and Data Types by Database Brand Note: For users of Adaptive Server 12.5 and : The Sybase driver supports extended new limits (XNL) for character and binary columns columns with lengths greater than 255. Refer to your Sybase documentation for more information about XNL for character and binary columns. Aurea Software, Inc. Confidential 190 Copyright 2013 Aurea, Inc.

191 SQL Escape Sequences for JDBC 7 Language features, such as outer joins and scalar function calls, are commonly implemented by database systems. The syntax for these features is often database-specific, even when a standard syntax has been defined. This chapter describes the JDBC-defined escape sequences containing standard syntaxes for the following language features: Date, Time, and Timestamp Escape Sequences on page 192 Scalar Functions on page 192 Outer Join Escape Sequences on page 199 Procedure Call Escape Sequences on page 200 The escape sequence used by JDBC is: {extension} The escape sequence is recognized and parsed by Aurea Sonic Database Service JDBC drivers, and replaces the escape sequences with data store-specific grammar. Aurea Software, Inc. Confidential 191 Copyright 2013 Aurea, Inc.

192 Chapter 7: SQL Escape Sequences for JDBC Date, Time, and Timestamp Escape Sequences The escape sequence for date, time, and timestamp literals is: {literal-type 'value'} where literal-type is one of the following: literal-type Description Value Format d Date yyyy-mm-dd t Time h:mm:ss [1] ts Timestamp yyyy-mm-dd hh:mm:ss[.f...] For example: UPDATE Orders SET OpenDate={d ' '} WHERE OrderID=1023 Scalar Functions You can use scalar functions in database queries with the following syntax: {fn scalar-function} where scalar-function is a scalar function supported by Database Service JDBC drivers, as listed in Table 23. For example: SELECT id, name FROM emp WHERE name LIKE {fn UCASE('Smith')} Aurea Software, Inc. Confidential 192 Copyright 2013 Aurea, Inc.

193 Scalar Functions Table 23: Scalar Functions Supported by Database Service JDBC Drivers Data Store String Functions Numeric Functions Timedate Functions System Functions Progress OpenEdge CONCAT LEFT ABS ACOS CURRDATE CURRTIME DATABASE USER LENGTH ASIN DAYOFMONTH LTRIM ATAN DAYOFWEEK REPLACE ATAN2 MONTH RTRIM COS NOW SUBSTRING COT TIMESTAMP EXP TIMESTAMPADD FLOOR LOG LOG10 TIMESTAMPDIF F YEAR MOD POWER ROUND SIN SQRT TAN TRUNCATE Aurea Software, Inc. Confidential 193 Copyright 2013 Aurea, Inc.

194 Chapter 7: SQL Escape Sequences for JDBC Table 23: Scalar Functions Supported by Database Service JDBC Drivers Data Store String Functions Numeric Functions Timedate Functions System Functions DB2 ASCII ABS or ABSVAL DATE COALESCE BLOB ACOS DAY DEREF CHAR ASIN DAYNAME DLCOMMENT CHR ATAN DAYOFWEEK DLLINKTYPE CLOB ATANH DAYOFYEAR DLURLCOMPLETE CONCAT ATAN2 DAYS DLURLPATH DBCLOB BIGINT HOUR DLURLPATHONLY DIFFERENCE CEILING or CEIL JULIAN_DAY DLURLSCHEME GRAPHIC COS MICROSECOND DLURLSERVER HEX COSH MIDNIGHT_SECONDS DLVALUE INSERT COT MINUTE EVENT_MON_STATE LCASE or LOWER DECIMAL MONTH GENERATE_UNIQUE LCASE (SYSFUN schema) DEGREES MONTHNAME NODENUMBER LEFT DIGITS QUARTER NULLIF LENGTH DOUBLE SECOND PARTITION LOCATE EXP TIME RAISE_ERROR LONG_VARCHAR FLOAT TIMESTAMP TABLE_NAME LONG_VARGRAPHIC FLOOR TIMESTAMP_ISO TABLE_SCHEMA LTRIM INTEGER TIMESTAMPDIFF TRANSLATE LTRIM (SYSFUN schema) LN WEEK TYPE_ID POSSTR LOG YEAR TYPE_NAME REPEAT LOG10 TYPE_SCHEMA REPLACE MOD VALUE RIGHT POWER RTRIM RADIANS RTRIM (SYSFUN schema) RAND SOUNDEX REAL SPACE ROUND SUBSTR SIGN TRUNCATE or TRUNC SIN UCASE or UPPER SINH VARCHAR SMALLINT VARGRAPHIC SQRT TAN TANH TRUNCATE Aurea Software, Inc. Confidential 194 Copyright 2013 Aurea, Inc.

195 Scalar Functions Table 23: Scalar Functions Supported by Database Service JDBC Drivers Data Store String Functions Numeric Functions Timedate Functions System Functions Informix CONCAT ABS CURDATE DATABASE LEFT ACOS CURTIME USER LENGTH ASIN DAYOFMONTH LTRIM ATAN DAYOFWEEK REPLACE ATAN2 MONTH RTRIM COS NOW SUBSTRING COT TIMESTAMPADD EXP FLOOR LOG TIMESTAMPDIF F YEAR LOG10 MOD PI POWER ROUND SIN SQRT TAN TRUNCATE Aurea Software, Inc. Confidential 195 Copyright 2013 Aurea, Inc.

196 Chapter 7: SQL Escape Sequences for JDBC Table 23: Scalar Functions Supported by Database Service JDBC Drivers Data Store String Functions Numeric Functions Timedate Functions System Functions Oracle ASCII ABS CURDATE IFNULL BIT_LENGTH ACOS DAYNAME USER CHAR ASIN DAYOFMONTH CONCAT ATAN DAYOFWEEK INSERT ATAN2 DAYOFYEAR LCASE CEILING HOUR LEFT COS MINUTE LENGTH COT MONTH LOCATE EXP MONTHNAME LOCATE2 FLOOR NOW LTRIM LOG QUARTER OCTET_LENGTH LOG10 SECOND REPEAT MOD WEEK REPLACE PI YEAR RIGHT POWER RTRIM ROUND SOUNDEX SIGN SPACE SIN SUBSTRING SQRT UCASE TAN TRUNCATE Aurea Software, Inc. Confidential 196 Copyright 2013 Aurea, Inc.

197 Scalar Functions Table 23: Scalar Functions Supported by Database Service JDBC Drivers Data Store String Functions Numeric Functions Timedate Functions System Functions Microsoft SQL Server ASCII CHAR ABS ACOS DAYNAME DAYOFMONTH DATABASE IFNULL CONCAT ASIN DAYOFWEEK USER DIFFERENCE ATAN DAYOFYEAR INSERT ATAN2 EXTRACT LCASE CEILING HOUR LEFT COS MINUTE LENGTH COT MONTH LOCATE DEGREES MONTHNAME LTRIM EXP NOW REPEAT FLOOR QUARTER REPLACE LOG SECOND RIGHT LOG10 TIMESTAMPADD RTRIM SOUNDEX SPACE SUBSTRING MOD PI POWER RADIANS TIMESTAMPDIF F WEEK YEAR UCASE RAND ROUND SIGN SIN SQRT TAN TRUNCATE Aurea Software, Inc. Confidential 197 Copyright 2013 Aurea, Inc.

198 Chapter 7: SQL Escape Sequences for JDBC Table 23: Scalar Functions Supported by Database Service JDBC Drivers Data Store String Functions Numeric Functions Timedate Functions System Functions Sybase ASCII ABS DAYNAME DATABASE CHAR ACOS DAYOFMONTH IFNULL CONCAT ASIN DAYOFWEEK USER DIFFERENCE ATAN DAYOFYEAR INSERT ATAN2 HOUR LCASE CEILING MINUTE LEFT COS MONTH LENGTH COT MONTHNAME LOCATE DEGREES NOW LTRIM EXP QUARTER REPEAT FLOOR SECOND RIGHT LOG TIMESTAMPADD RTRIM SOUNDEX SPACE SUBSTRING LOG10 MOD PI POWER TIMESTAMPDIF F WEEK YEAR UCASE RADIANS RAND ROUND SIGN SIN SQRT TAN Aurea Software, Inc. Confidential 198 Copyright 2013 Aurea, Inc.

199 Outer Join Escape Sequences Outer Join Escape Sequences JDBC supports the SQL92 left, right, and full outer join syntax. The escape sequence for outer joins is: {oj outer-join} where outer-join is: table-reference {LEFT RIGHT FULL} OUTER JOIN {table-reference outer-join} ON search-condition where: For example: table-reference is a database table name search-condition is the join condition you want to use for the tables SELECT Customers.CustID, Customers.Name, Orders.OrderID, Orders.Status FROM {oj Customers LEFT OUTER JOIN Orders ON Customers.CustID=Orders.CustID} WHERE Orders.Status='OPEN' Table 24 lists the outer join escape sequences supported by Database Service JDBC drivers for each data store. Table 24: Outer Join Sequences Supported by Database Service JDBC Drivers Data Store Progress OpenEdge DB2 Informix Oracle Outer Join Escape Sequences Left outer joins Right outer joins Nested outer joins Left outer joins Right outer joins Nested outer joins Left outer joins Right outer joins Nested outer joins Left outer joins Right outer joins Nested outer joins Aurea Software, Inc. Confidential 199 Copyright 2013 Aurea, Inc.

200 Chapter 7: SQL Escape Sequences for JDBC Table 24: Outer Join Sequences Supported by Database Service JDBC Drivers Microsoft SQL Server Sybase Data Store Outer Join Escape Sequences Left outer joins Right outer joins Full outer joins Nested outer joins Left outer joins Right outer joins Nested outer joins Procedure Call Escape Sequences A procedure is an executable object stored in the data store. Generally, it is one or more database queries that have been precompiled. The escape sequence for calling a procedure is: {[?=]call procedure-name[(parameter[,parameter]...)]} where: procedure-name specifies the name of a stored procedure parameter specifies a stored procedure parameter Note: For DB2, a schema name cannot be used when calling a stored procedure. Also, for DB2 UDB 8.1, literal parameter values are supported for stored procedures. Other supported DB2 versions do not support literal parameter values for stored procedures. Aurea Software, Inc. Confidential 200 Copyright 2013 Aurea, Inc.

201 Configuring SQL Server Windows Authentication 8 The Aurea Sonic Database Service JDBC SQL Server driver supports Windows authenticated connections to Microsoft SQL Server 2000 and Microsoft SQL Server 2000 Enterprise Edition (64-bit) in a domain running Windows Active Directory for Windows clients. See Table 25 for a summary of the configuration that is required to use Windows authentication on Microsoft SQL Server with the Database Service JDBC SQL Server driver. Table 25: Configuring Windows Authentication on Microsoft SQL Server Component Microsoft SQL Server Database Server Domain Controller Collection Set the authentication mode (seesetting the Authentication Mode on page 202). Confirm that a Service Principal Name (SPN) is registered for each Microsoft SQL Server instance (see Registering Service Principal Names (SPNs) on page 202). Confirm that the Active Directory encryption property is set to use DES encryption in the Microsoft SQL Server Service Startup Account (see Setting the Active Directory Encryption Property on page 203). Aurea Software, Inc. Confidential 201 Copyright 2013 Aurea, Inc.

202 Chapter 8: Configuring SQL Server Windows Authentication Setting the Authentication Mode To use Windows authentication, the authentication mode in Microsoft SQL Server on the database server can be set to either Windows Only authentication or Mixed authentication. If SQL Server authentication will be used in addition to Windows authentication, set the authentication mode to use Mixed authentication. Registering Service Principal Names (SPNs) An SPN must be registered for each Microsoft SQL Server instance. An SPN is a unique name that maps the Microsoft SQL Server service for a particular machine and port to an account name used to start the service (Service Startup Account). An SPN is composed of a service class name of MSSQLSvc, the host name of the machine running Microsoft SQL Server, and the port number on which the Microsoft SQL Server instance is listening. For example: MSSQLSvc/DBServer.test:1433 is an SPN for a Microsoft SQL Server instance running on a machine named DBServer in the test domain and listening on port Check with your system administrator to confirm that the appropriate SPNs have been registered for each Microsoft SQL Server instance. To list registered SPNs, use the following Windows command: ldifde If necessary, your system administrator can register SPNs using the Setspn tool available with the Windows Resource Kit. For example: setspn -A MSSQLSvc/DBServer.test:1433 sqlsvc registers an SPN that maps the Service Startup Account named sqlsvc to a Microsoft SQL Server instance running on a machine named DBServer in the test domain and listening on port The Setspn tool is available from the following Web site: existing/setspn-o.asp Refer to the Microsoft documentation accompanying the Setspn tool for instructions on using it. Note: If the Microsoft SQL Server Service Startup Account is changed, SPNs for Microsoft SQL Server must be deleted and re-registered. Aurea Software, Inc. Confidential 202 Copyright 2013 Aurea, Inc.

203 Setting the Active Directory Encryption Property Setting the Active Directory Encryption Property A Windows domain running Windows Active Directory uses the Kerberos authentication protocol to protect logon credentials that travel across the network. Messages passed between the Kerberos Key Distribution Center (KDC), which runs on every domain controller as part of Active Directory, and Microsoft SQL Server are encrypted. The Active Directory property "Use DES encryption types for this account" must be set in the Microsoft SQL Server Service Startup Account on the domain controller. Setting this property is a one-time task that you must do only when the Active Directory account is first created. Check with your system administrator to verify that this property is set for the Microsoft SQL Server Service Startup Account on the domain controller. Aurea Software, Inc. Confidential 203 Copyright 2013 Aurea, Inc.

204 Chapter 8: Configuring SQL Server Windows Authentication Aurea Software, Inc. Confidential 204 Copyright 2013 Aurea, Inc.

205 Integrating Sonic and Actional Part IV Part IV contains the following chapters: Chapter 11, Using Actional with Sonic Components on page 207 Chapter 12, Using Actional Trust Zones in Sonic ESB on page 229 Aurea Software, Inc. Confidential 205 Copyright 2013 Aurea, Inc.

206 Chapter : Integrating Sonic and Actional Aurea Software, Inc. Confidential 206 Copyright 2013 Aurea, Inc.

207 Using Actional with Sonic Components 11 The Sonic Enterprise Service Bus (ESB), SonicMQ and Sonic Connect interceptors provide service visibility through a stand-alone instance of Actional Agent. The ESB interceptor provides a logical view of all the interactions in the bus, the MQ interceptor provides visibility in to the message flows in brokers and the Sonic Connect interceptors provide visibility into inbound and outbound RESTful and SOAP calls. The Sonic interceptors are packaged and always installed with Sonic ESB containers and SonicMQ brokers. The interceptors require you to specifically enable them on each installed container and broker, as described in this chapter and in Aurea Actional documentation. The sections in this chapter are: Instrumenting Sonic ESB on page 208 Instrumenting SonicMQ on page 213 Instrumenting SonicMQ on page 213 Configuring an AOP Interceptor for a Sonic Container on page 215 Configuring Actional Interceptors for Sonic Connect on page 216 Visualization When Both Sonic Connect and Sonic ESB are Instrumented on page 219 Visualization When Both SonicMQ Broker and Sonic ESB are Instrumented on page 224 Specifying the Uplink Configuration Location in Sonic on page 225 Visualizing Special Itinerary Steps in Actional on page 226 Aurea Software, Inc. Confidential 207 Copyright 2013 Aurea, Inc.

208 Chapter 11: Using Actional with Sonic Components Instrumenting Sonic ESB Sonic ESB 2013 installations use the actional-sdk.jar that is packaged in the management framework archives and maintainable on a management container s Resources tab, as shown on page 216. The ESB interceptor maps Sonic ESB message interactions to Actional Management Server levels as follows: Actional Management Server Level Sonic ESB Itineraries Sonic ESB non-itineraries 1 Host Name Host Name 2 ESB Service Name ESB Service Name 3 ESB Process Name "Standalone" 4 Step Name - A Sonic ESB process, when visualized in the Actional Management Server, might look similar to the following: Figure 3: ESB Process where Step_1, Step_2, and Step_3 are the steps in the ESB process Sample.XPathCBR. Services running on ESB might not be part of an ESB process. When Sonic ESB responds to a simple service request the fourth level does not have meaning, so the call looks more the one below for the dev.runservice: Figure 4: ESB Service Aurea Software, Inc. Confidential 208 Copyright 2013 Aurea, Inc.

209 Instrumenting Sonic ESB The Actional Item Breakdown shows subnode data and the distribution of calls from ESB containers in the node. The syntax for each subnode is DomainName.ManagementContainerName.ESBContainerName. In the following illustration, two containers contributed to the inbound call volume to dev.cbr: Figure 5: Sonic Subnode Enabling the ESB Interceptor The Sonic ESB Interceptor is installed whenever a Sonic ESB container is installed on a system. The interceptor is not, by default, enabled. In order to use the Actional Agent to manage services and processes on a system, you must install and provision the Actional Agent on the system where the ESB service runs, and then enable the interceptor by making configuration changes to the ESB Container, typically through the Sonic Management Console. Integration is set on each ESB container you want to monitor by enabling the instrumentation in Sonic. To enable Sonic ESB instrumentation on an ESB container: 1. Start the Sonic Management Console and connect to the Directory Service that manages the ESB service. 2. In the left panel, expand the ESB Configured Objects tree. 3. In the navigation panel, click on ESB Containers. 4. Select a container in the ESB Container Name section in the right panel. 5. In the Actional Integration section of the screen, check the Enable Instrumentation checkbox, and, optionally, whether to allow capturing of each message's payload. The result of enabling ESB container instrumentation looks like the following: Aurea Software, Inc. Confidential 209 Copyright 2013 Aurea, Inc.

210 Chapter 11: Using Actional with Sonic Components Figure 6: Enabled ESB Container Instrumentation 6. On the management container that hosts the ESB Container, specify the location of the uplink.cfg file. For more information, Specifying the Uplink Configuration Location in Sonic on page 225. The container logs the information, as shown for this example where the myesb ESB container was enabled and hosts the dev_cbr Service: Code Sample 1: ESB Container Log of Actional Instrumentation Information [date-time] ID=My ESB (info) [ESBService] Initializing Service 'dev.cbr' [date-time] ID=My ESB (info) [ESBService] Service 'dev.cbr' initialized: 1 thread(s) listening on Endpoint dev.cbr.entry [date-time] ID=My ESB (info) Actional instrumentation is enabled for this container [date-time] ID=My ESB (info) Actional payload capture is disabled. [date-time] ID=My ESB (info) Actional agent is running. [date-time] ID=My ESB (info) Loaded Actional SDK [date-time] ID=My ESB (info) Initializing Mitigation context factory class: com.sonicsw.xqimpl.actional.lg.visitor.stabilizerhelper [date-time] (info) Loaded ID=My ESB Using Stabilizers with Sonic ESB From within ESB at runtime, the value of stabilizer switches can be obtained from the service context. A stabilizer switch is a custom-defined flag set by the Actional Management Server to indicate certain user-specified system conditions. It can be used by ESB to set up custom routing in response to changing network or application conditions. You can access stabilizers in three ways: through interfaces in the Sonic ESB API, through JavaScript, and through XPath. If Actional is not instrumented for the ESB container, then accessing stabilizers with any of the three mechanisms will always return false. If no stabilizer switch is defined, then these return false as well. Aurea Software, Inc. Confidential 210 Copyright 2013 Aurea, Inc.

211 Instrumenting Sonic ESB Accessing Stabilizers in the Sonic ESB API This example uses the XQMitigationContext and XQServiceContext interfaces from the com.sonicsw.xq package. Custom ESB services written in Java can call these methods starting with the service context instance passed to the service() method. More commonly, however, stabilizer switches will be used from within a Content Base Routing (CBR) step in an ESB process. This allows the ESB process to route messages, at runtime, based on the value of a stabilizer switch. First, the application must retrieve an instance of XQMitigationContext, by calling the following method on the XQServiceContext interface: public XQMitigationContext getmitigationcontext() Then, on the returned object, call this method to return the value of the switch: public boolean getmitigationswitch(java.lang.string switchname) This method returns false if the switch is not defined. Acccessing Stabilizers in Javascript Typically, a CBR step in a process is configured to use a Javascript program to perform the routing logic. The Javascript program must define a function called rule() that ESB calls at runtime. In this rule() function, you can access the appropriate runtime interfaces, as shown: Code Sample 2: function islgstabilizerset(switchname) { if (switchname == null) { XQ_logInformation("#### No Stabilizer Switch name specified."); return false; } XQ_logInformation( #### Fetching MitigationContext ); mctx = XQServiceContext.getMitigationContext(); if( mctx == null ) { XQ_logInformation("#### No MitigationContext found, LG is probably not enabled."); return false; } XQ_logInformation("#### Fetching Stabilizer Switch value for: " + switchname ); stabilizerswitch = mctx.getmitigationswitch(switchname); XQ_logInformation("#### Returning Stabilizer Switch value: " + switchname + "=" + stabilizerswitch); return stabilizerswitch; } function rule() { if (islgstabilizerset("esbstabilizerswitch1")) { return XQ_getStepAddress("Step_StabilizerTrue"); } Aurea Software, Inc. Confidential 211 Copyright 2013 Aurea, Inc.

212 Chapter 11: Using Actional with Sonic Components } else { return XQ_getStepAddress("Step_StabilizerFalse"); } In this example, the rule() function calls the is LGStabilizerSet function to determine the value of a switch. If this switch is set, the CBR routes to a process StabilizerSet step; if the switch is not set, the CBR routes to the StabilizerNotSet step. Consult the ESB documentation for information on defining Content Base Routing steps. For more information on stabilizer switches and how they are used in Actional Management Server, see the Stabilizer Switches chapter of the Actional Management Server Guide. Accessing Stabilizers in XPath To use stabilizers from XPath, define a namespace that maps a prefix (say, stabilizer) to java:com.sonicsw.xqimpl.actional.lg.visitor.stabilizerhelper. In the expression, enter the following to access the value of a stabilizer switch called Stabilizer1: stabilizer:getmitigationswitch(stabilizer:new(),'stabilizer1') Using ESB-Specific Message Fields The ESB message fields provide information that is not reported natively by the Actional Management Server. The ESB interceptor defines four message fields that are not defined for other platforms: Message Field Name ESB-Container Description The name of the ESB container This field keeps track of the specific ESB container that either invokes a call or is invoked by a call. Actional Management Server is not aware of containers as such it tracks information at the managed-node level. In cases where several containers are running on the same node, this message field will specify which container is in use. ESB-Top-Process The name of the top-level process of a nested ESB process This field is useful when tracking the progress of a nested ESB process. In those cases, it keeps track of the name of the ESB top process that owns the current call. ESB-Process ESB-Service The name of the current ESB process When applicable, this field reports on the current ESB Process, which may itself be part of a higher level ESB Process. The name of the ESB service invoked at a given step When applicable, this field reports the name of the current ESB Service that was invoked by an ESB Process step. Aurea Software, Inc. Confidential 212 Copyright 2013 Aurea, Inc.

213 Instrumenting SonicMQ Enabling ESB Message Fields To enable this feature, the named message fields must be created (each with no default value) in the Actional Management Server administration interface. See the Message Fields chapter of the Actional Management Server Guide for more information on creating message fields. Startup Order The Sonic ESB interceptor verifies that the Actional Agent is running when the ESB container is launched. If the interceptor does not detect a running Actional Agent, ESB instrumentation is disabled, even if it has been manually enabled in the Sonic Management Console. Therefore make sure that the Actional Agent is running, taken under management and provisioned before the ESB container is launched on the same node. Trust Zones Trust Zones can be enforced by the ESB interceptor. See the following chapter, Chapter 12, Using Actional Trust Zones in Sonic ESB on page 229 for more information. Auditing The Sonic ESB interceptor can be configured to capture payload data. The ESB interceptor captures the contents of all message parts. You can report ESB message parts in the Actional Management Server audit log or use them to form XPath field definitions where an XPath expression can be applied to any part in a multi-part message. Instrumenting SonicMQ Aurea SonicMQ broker installations include the actional-sdk.jar in the SonicMQ library archives and the SonicMQ interceptor in the broker.jar. When a SonicMQ broker is enabled for Actional instrumentation, and both the broker and agent are running, SonicMQ interceptors are in the flow between the message producers and message consumers. They intercept all inbound and outbound messages and feed information about those interactions to the agent as asynchronous events. The SonicMQ interceptor maps the messaging interactions on an instrumented broker to Actional levels as follows: Actional Level Sonic 1 Host Name 2 Sonic Node Name :: Broker Name Aurea Software, Inc. Confidential 213 Copyright 2013 Aurea, Inc.

214 Chapter 11: Using Actional with Sonic Components Actional Level 3 Destination Name 4 - Sonic A SonicMQ message flow from producer to consumer, when visualized in the Actional Management Server, might look similar to the following: Figure 7: SonicMQ Message Flow where producer P1 published to topic T.1 on broker br3 (a member of Sonic cluster that is referenced as Sonic routing node A). Subscribers S1 and S2 are active consumers on broker br3 with patterns that include the T.1 topic Enabling the SonicMQ Interceptor The SonicMQ Interceptor is installed whenever a SonicMQ broker is installed on a system. The interceptor is not, by default, enabled. In order to use the Actional Agent to manage services and processes on a system, you must install and provision the Actional Agent on the system where the SonicMQ broker runs, and then enable the interceptor by making configuration changes to the SonicMQ broker, typically through the Sonic Management Console. Actional integration is set on each broker running on a system. Related SonicMQ brokers placed on different systems (and therefore different Actional nodes) should have their Actional Agent instances managed on the same Actional Management Server to visualize interbroker flows such as clusters, Dynamic Routing, and Continuous Availability failover. Correspondingly, SonicMQ brokers registered in different SonicMQ domains but colocated on the same managed node will record their events on the same Actional Management Server. To enable SonicMQ instrumentation on a SonicMQ broker: 1. Start the Sonic Management Console, and connect to the Directory Service that manages the broker. 2. On the configuration tab's left panel, locate the broker configuration you want to instrument. 3. Right click on the broker name, and then choose Properties. 4. Select the Monitoring tab. 5. Check the Enable Actional Instrumentation checkbox, and, optionally, whether to enable capturing of each message's payload. You can specify the payload capture as NONE, HEADER, BODY, or ALL (both header and body). The result of enabling SonicMQ broker instrumentation and choosing to capture payload headers is as follows: Aurea Software, Inc. Confidential 214 Copyright 2013 Aurea, Inc.

215 Configuring an AOP Interceptor for a Sonic Container Figure 8: Enabled SonicMQ Broker Instrumentation The log of the management container that hosts the broker immediately indicates the status of the instrumentation, as shown for this example: Code Sample 3: Broker s Container Log of Actional Instrumentation Information [date-time] ID=Br1 (info) Actional instrumentation is enabled with payload capture disabled [date-time] ID=Br1 (info) Successfully connected to Actional agent 6. On the management container that hosts the broker, specify the location of the uplink.cfg file. For more information, see Specifying the Uplink Configuration Location in Sonic on page 225. Configuring an AOP Interceptor for a Sonic Container When using Sonic ESB with products that use Aspect Oriented Programming (AOP) style interceptors, such as Aurea Actional Management Server, you must add the additional Actional interceptors to a Sonic container to improve its visibility. The AOP-style interceptors adds the necessary configuration to enable the Actional Plugmaker. Note: Configuring SonicMQ Management Containers See the SonicMQ Configuration and Management Guide chapter Configuring Containers and Components for more about maintaining a container s Resources and Environment settings. To configure a AOP Interceptor for a Sonic Container: 1. Start the Sonic Management Console and connect to the Directory Service that manages the ESB service. 2. In the left panel, expand the Containers tree. 3. Select and right-click a container in the Containers section, and choose Properties. The Edit Container Properties page opens. 4. Choose the Resources tab. 5. Click Add. The Add ClassPath dialog box opens. 6. Enter the actional-jdbc-interceptor.jar and click OK to set the Prepend Classpath. Aurea Software, Inc. Confidential 215 Copyright 2013 Aurea, Inc.

216 Chapter 11: Using Actional with Sonic Components 7. Choose the Environment tab. 8. Click New. The New System Property dialog box opens. a. In the Variable box, enter com.actional.aops b. In the Value box, enter com/actional/lg/interceptor/jdbc/jdbc.aop. 9. Click OK. Important: You must set the com.actional.aops system property using the Java System Properties field. If you set it with a -D settings in the Java VM options, it will not work. Configuring Actional Interceptors for Sonic Connect The Sonic Connect and Actional interceptors provide visibility into inbound and outbound RESTful and SOAP calls from the Sonic Connect stack: Installed with Sonic ESB: Sonic Connect CXF Jetty Interceptor Available from Aurea Actional: Actional CXF Interceptor Actional Servlet Interceptor These interceptors enable you to instrument the SOAP and REST interactions of a Sonic Connect service. To import the Actional Interceptors into the Directory Service: 1. Connect to the domain manager and open the Sonic Management Console. 2. Select the Configure tab, then in the left pane select the node System\SonicESB\2013\lib. 3. Select Action > Import File to open the Select Import File dialog box. 4. Browse to the location of the actional-cxf-interceptor.jar and actional-servlet-interceptor.jar files 5. Select the files, and then click Import. The jar files are imported to the Directory Services and are available for configuration. To configure the Actional Interceptors for a Sonic Container: 1. Start the Sonic Management Console and connect to the Directory Service that manages the ESB service. 2. In the left panel, expand the Containers tree. Aurea Software, Inc. Confidential 216 Copyright 2013 Aurea, Inc.

217 Configuring Actional Interceptors for Sonic Connect 3. Select and right-click a container in the Containers section, and choose Properties. 4. Choose the Resources tab. Aurea Software, Inc. Confidential 217 Copyright 2013 Aurea, Inc.

218 Chapter 11: Using Actional with Sonic Components 5. Click Add, and then prepend the classpath of each interceptor jar in sonicfs, as shown: 6. Choose the Environment tab. 7. Click New. 8. The New System Property dialog box opens. a. In the Variable box, enter com.actional.aops b. In the Value box, enter (as one line): com/actional/lg/interceptor/sonicconnect/cxfjetty.aop,com/actional/lg/inte rceptor/j2ee/j2ee.aop,com/actional/lg/interceptor/cxf/cxf.aop 9. Click OK. The property is listed as shown, with your value entry: 10. Optionally, you can also enable Actional Instrumentation in the ESB Container. For more information, see Enabling the ESB Interceptor on page 209. Aurea Software, Inc. Confidential 218 Copyright 2013 Aurea, Inc.

219 Visualization When Both Sonic Connect and Sonic ESB are Instrumented Visualization When Both Sonic Connect and Sonic ESB are Instrumented The following examples demonstrate how various Sonic Connect use cases are visualized in the Actional Management Server console when instrumentation is enabled for both Sonic ESB and Sonic Connect. These examples are based on the Sample.SonicConnect projects included with Sonic Workbench. Exposing ESB Process over HTTP(s) - SOAP In this scenario, based on the ESBToWS sample, an external SOAP client invokes an ESB process over HTTP. The request is received by a Sonic Connect service, shown in the middle of the flow diagram. The exposed ESB Process is shown on the right. The Actional Management Server levels are mapped as follows: Actional Management Server Level SOAP calls In this example 1 Host Name lenw500 2 Servlet context name Patientservice 3 WSDL Port PatientSOAPPort 4 WSDL Operation getpatients The Actional CXF interceptor provides visibility for SOAP traffic. This interceptor supports payload capture for both the inbound and outbound messages. Figure 9: ESB Process over HTTP(s) - SOAP Exposing ESB Process over HTTP(s) - REST In this scenario, based on the RESTfulESB and PatientService samples, an external HTTP client invokes an ESB process over HTTP. The request is received by a Sonic Connect service, shown in the middle of the flow diagram. The exposed ESB process is shown on the right. Aurea Software, Inc. Confidential 219 Copyright 2013 Aurea, Inc.

220 Chapter 11: Using Actional with Sonic Components The Actional Management Server levels are mapped as follows: Actional Management Server Level REST calls In this example 1 Host Name lenw500 2 Servlet context name / 3 URI template /patientservice/patients/{pid} 4 HTTP method GET Figure 10: ESB Process over HTTP(s) - REST The Actional Servlet interceptor and Sonic CXF Jetty interceptor provide visibility in this example. The CXF Jetty interceptor supports payload capture for both inbound and outbound messages. Calling externally hosted SOAP service as step in Itinerary In this scenario, a Sonic Connect client invokes an external SOAP Web Service over HTTP. The Sonic Connect client is a step in the InvokeProcess ESB process, shown in the middle of the flow diagram. The Sonic Connect client is shown on the right. In this scenario the external SOAP Web Service is not instrumented and is not shown in the diagram. The Actional CXF interceptor provides visibility for this use case. Aurea Software, Inc. Confidential 220 Copyright 2013 Aurea, Inc.

221 Visualization When Both Sonic Connect and Sonic ESB are Instrumented Figure 11: Externally hosted SOAP service Calling external REST service as a step in Itinerary In this scenario, based on the RESTful ESB and PatientService samples, a Sonic Connect client invokes an external REST service over HTTP. The consumer shown on the far left of the flow diagram is the Sonic Workbench client used to generate the request by running a scenario. This calls the RESTPutPatientInvoker ESB process. The Sonic Connect client is shown on the right. In this scenario, the external REST service is not Instrumented and is not shown in the diagram. The Actional CXF interceptor provides visibility for this use case. Figure 12: Externally hosted REST service Aurea Software, Inc. Confidential 221 Copyright 2013 Aurea, Inc.

222 Chapter 11: Using Actional with Sonic Components Exposing a JAX-WS POJO over HTTP In this scenario, based on the JAX-WS sample, a JAX-WS POJO hosted in a Sonic Connect service is invoked by an external SOAP client over HTTP. No ESB processes are used in this scenario. The Actional CXF interceptor provides visibility for this use case. Figure 13: JAXWS POJO Exposing a JAX-RS POJO over HTTP In this scenario, based on the JAX-RS and ESBToREST samples, a JAX-RS POJO hosted in a Sonic Connect service is invoked by an external HTTP client. The Actional Servlet and Sonic CXF Jetty interceptors provide visibility for this use case. Figure 14: JAXRS POJO Aurea Software, Inc. Confidential 222 Copyright 2013 Aurea, Inc.

223 Visualization When Both Sonic Connect and Sonic ESB are Instrumented Invoking a JAXWS POJO as a step in itinerary In this scenario, based on the JAX-WS sample, a JAX-WS POJO hosted by Sonic Connect is invoked directly as a step in an ESB process. There are no HTTP calls in this scenario. The GetPatientsPojoInvoker ESB process is shown in the middle of the flow diagram. It invokes the Sonic Connect step, shown on the right. The Actional CXF interceptor provides visibility for this use case Figure 15: JAXWS POJO Invoking a JAXRS POJO as a step in itinerary In this scenario, based on the JAX-RS sample, a JAX-RS POJO hosted by Sonic Connect is invoked directly as a step in an ESB process. There are no HTTP calls in this scenario. The JAXRSPutPatientInvoker ESB process is shown in the middle of the flow diagram. It invokes the Sonic Connect step, shown on the right. The Actional CXF interceptor provides visibility for this use case. Note that in this case there is no visibility of the call to the POJO. Figure 16: JAXRS POJO Aurea Software, Inc. Confidential 223 Copyright 2013 Aurea, Inc.

224 Chapter 11: Using Actional with Sonic Components Visualization When Both SonicMQ Broker and Sonic ESB are Instrumented If you enable instrumentation on an Actional managed node for both SonicMQ brokers that monitor message traffic, and the Sonic ESB services that are producing and consuming messages, then the hybrid visualization of the messages flowing through the endpoints on the brokers might look similar to the following for an ESB process: Figure 17: Hybrid SonicMQ/Sonic ESB Instrumentation The hybrid visualization of the messages flowing through the endpoints on the brokers might look similar to the following for a standalone service through a call to the dev.run service: Figure 18: Standalone Service Aurea Software, Inc. Confidential 224 Copyright 2013 Aurea, Inc.

225 Specifying the Uplink Configuration Location in Sonic Specifying the Uplink Configuration Location in Sonic You need to explicitly declare the location of the Actional Agent s uplink.cfg file in the Sonic context. In Sonic, you do this by setting a Java System property in each management container configuration where Actional instrumentation is enabled. To specify the location of the uplink.cfg file: 1. In the Sonic Management Console, open (in turn) the Properties dialog box of each management container that hosts a messaging broker or ESB Container where you enabled Actional instrumentation. 2. Choose the Environment tab. 3. Click New. a. For the Variable, enter com.actional.lg.interceptor.config. b. For the Value enter a location for the file, usually a new folder within the Actional Agent directory. 4. Click OK on the two dialog boxes. Note: If your management container is hosting instrumented ESB container(s) and your Actional Agent is running on a remote machine, you will also need to define an additional management container environment variable, com.actional.bootstrap.url, and set it to the URL of the remote agent. The property is listed as shown, with your value entry: Figure 19: Actional Uplink Configuration Location Property Aurea Software, Inc. Confidential 225 Copyright 2013 Aurea, Inc.

226 Chapter 11: Using Actional with Sonic Components Visualizing Special Itinerary Steps in Actional Itinerary steps such as Fault, Reject, Terminate, Rethrow, and Resubmit are reported as Actional sites by the ESB Actional interceptor. These sites follow the usual process step Node, Group, Service, and Operation structure. The Actional ESB interceptor reports Faults to Actional Management Server levels as follows: Actional Management Server Level Composition Sonic ESB itinerary 1 Node 2 Group "(InternalStep.Fault)", "(InternalStep.Reject)"," (InternalStep.Rethrow)", "(InternalStep.Resubmit)", and "(InternalStep.Terminate)" 3 Service Process name that originated the fault 4 Step Itinerary name of the special step Faults visibility in the Actional Management Server A Sonic ESB itinerary that has a fault handler process, when visualized in the Management Server, might look similar to the following: Aurea Software, Inc. Confidential 226 Copyright 2013 Aurea, Inc.

227 Visualizing Special Itinerary Steps in Actional Faults-specific message fields The following table lists message fields and their ESB headers for Fault sites. This enables authoring Actional policy against Fault origin information. ESB Header SonicESB.Fault.Name SonicESB.Fault.String SonicESB.Fault.Code Message Fields ESB-Fault-Name ESB-Fault-String ESB-Fault-Code Fault sites include a message field "ESB-Fault-Address" that contains the ESB (endpoint, process, or service) address to which the Fault is delivered. This message field enables authoring Actional policy against Fault delivery destination. Abnormal Termination Sites Abnormal termination sites are reported to Actional whenever ESB itineraries Fault or Rejected Message Endpoints (RME). Reject termination sites are also reported by standalone services that includes RME. The Actional ESB Interceptor reports the following special abnormal termination sites to Actional as : Actional Management Server Level Composition Sonic ESB itinerary 1 Node 2 Group "(TerminalFaultGroup)" or "(TerminalRejectGroup)" 3 Service Process that terminates 4 Operation "(Fault)" or "(Reject)" Aurea Software, Inc. Confidential 227 Copyright 2013 Aurea, Inc.

228 Chapter 11: Using Actional with Sonic Components RMEs visibility in the Actional Management Server A Sonic ESB itinerary that has contains an RME, when visualized in the Management Server, might look similar to the following: Rejects-specific message fields Reject sites include a message field "ESB-Reject-Address" which contains the ESB (endpoint, process, or service) address to which the RME is delivered. This message field enables authoring Actional policy against the RME delivery destination. The XML content in the RME contains specific error origination information which enables authoring Actional policy against error origin information. Aurea Software, Inc. Confidential 228 Copyright 2013 Aurea, Inc.

229 Using Actional Trust Zones in Sonic ESB 12 This chapter describes support for Aurea Actional trust zones in Aurea Sonic ESB in the following sections: Aurea Actional Trust Zones on page 229 Implementing Trust Zones in Aurea Sonic ESB on page 230 Aurea Actional Trust Zones You can use Aurea Sonic ESB 2013 with Aurea Actional (or higher) to implement trust zones, which provide an additional layer of security in a SOA environment. In Sonic ESB 2013, trust zones are only supported for SOAP messages over HTTP. Trust zones secure the last mile and guard against threats from the following attacks: Replay Unauthorized third party tries to reuse an intercepted message header to restart or continue a session in place of the original requester system. Man in the middle Unauthorized third party intercepts communications between two systems, acting as a relay and capturing private information. The key components in Actional trust zone technology are: Trust assertor (TA) Actional Intermediary by default and agents if they are configured. The Actional Intermediary interceptor is the trust assertor and it inserts a trust header in a message before sending it to the internal network. Aurea Software, Inc. Confidential 229 Copyright 2013 Aurea, Inc.

230 Chapter 12: Using Actional Trust Zones in Sonic ESB Trust enforcement point (TEP) - All agents can be enforcement points. During trust enforcement the Actional manifest header of the incoming message is checked. If the header does not contain valid trust information, the message is rejected. When an interceptor in the same trust zone performs trust enforcement on an incoming message, it validates the trust information and prevents the message from reaching the application if the trust information is invalid. Trust information is invalid if: Trust assertion is missing (the message did not come in through a trust assertor) Trust interval has expired Invalid source IP address (if the caller's IP address checking is enabled) Trust information was compromised (security breach) Trust zones limit the processing of a request to once within the trust interval, a trust-zone-wide configuration property (the default is 5 minutes). You must synchronize the clocks on all nodes in a trust zone to ensure that the difference between clocks does not exceed the trust interval; otherwise, all requests within the trust zone are rejected. To set the trust interval, see the Actional Server and Actional Intermediary chapter in the Actional Server Continuous Service Optimization Guide. Note: If a message remains in a JMS queue longer than the trust interval, trust zone enforcement fails when the message is processed.if a message is redelivered, trust enforcement rejects the second message since it has the same request ID. If the message is redelivered after the JVM is restarted or after the time window expires, it is not rejected. Implementing Trust Zones in Aurea Sonic ESB To implement trust zone enforcement in Sonic ESB, you enable Actional instrumentation on ESB containers, add the nodes on which the ESB containers are deployed to a trust zone, and configure appropriate service groups in Actional Intermediary for the web services exposed in ESB. The following is an overview of how to implement trust zones with Sonic ESB: 1. Use (or higher) versions of the Actional product family (Agent, Server, and Intermediary). 2. Enable Actional instrumentation: Enable Actional instrumentation on ESB 2013 containers. Do not enable Actional instrumentation on any brokers that Sonic ESB uses for messaging. See Enable Actional Instrumentation in Sonic ESB on page Configure Actional Intermediary with appropriate service groups for the web services exposed in Sonic ESB. See Register a Web Service with Actional Intermediary on page 233. Aurea Software, Inc. Confidential 230 Copyright 2013 Aurea, Inc.

231 Implementing Trust Zones in Aurea Sonic ESB 4. Configure trust zones appropriately for Sonic ESB and ensure that the agents are provisioned: Disable the Check Caller IP Address setting Enable the Trust Calls within Trust Zones setting See Define Trust Zones on Actional Server on page 237. Enable Actional Instrumentation in Sonic ESB For each ESB process that will run in a trust zone, you must enable Actional instrumentation on every ESB container that participates in the execution of the ESB process. Sonic ESB performs trust enforcement to check whether a message is trusted before letting a service execute. After service execution, Sonic ESB adds a trust assertion so the message is trusted at subsequent steps in the ESB process. Sonic ESB only adds a trust assertion if the TRUST CALLS WITHIN TRUST ZONES setting is enabled (see page 238). See the Instrumenting Sonic ESB chapter in the Actional Interceptor Guide for more information. Important: Instrument only Sonic ESB, not SonicMQ. Do not enable Actional instrumentation on any SonicMQ broker to which an ESB application can connect. If SonicMQ is instrumented, calls from outside the trust zone going directly to SonicMQ are viewed as trusted. This is because after Actional instrumentation is enabled, all entities act as trust assertors and automatically write a trust assertion in messages coming from SonicMQ. This behavior poses a security risk. Enabling trust zones affects flow visualization. All calls come into Sonic ESB through Actional Intermediary, which causes an extra node in the flow. If an ESB container is not Actional-instrumented and an incoming message contains an Actional manifest header, Sonic ESB preserves and propagates the header to all messages in the Outbox. The Actional manifest header contains all the information relevant to Actional and by propagating this header Sonic ESB preserves the Actional flow even when the message travels through a non-instrumented Sonic ESB node. This behavior is modified in 2013 when trust zones are enabled. A non-instrumented ESB container will not propagate the Actional manifest header if a message is received from a trusted node. This prevents a trusted downstream node from falsely trusting a message that arrived from this non-trusted ESB container. Aurea Software, Inc. Confidential 231 Copyright 2013 Aurea, Inc.

232 Chapter 12: Using Actional Trust Zones in Sonic ESB Enabling Actional Instrumentation on an ESB Container You can use the Sonic Management Console or Sonic Workbench to enable Actional instrumentation on an ESB container. To enable Actional instrumentation using the Sonic Management Console: 1. Select the ESB Containers folder in the left panel under ESB Configured Objects. 2. Select the ESB container in the list in the right panel. 3. Under Actional Integration in the right panel, select Enable Actional Instrumentation: To enable Actional instrumentation using Sonic Workbench: 1. In the Containers view, select a container, right-click and select Properties. 2. In the General Properties page, select Enable Actional Instrumentation: Aurea Software, Inc. Confidential 232 Copyright 2013 Aurea, Inc.

233 Implementing Trust Zones in Aurea Sonic ESB Disabling Trust Enforcement on a Management Container (Optional) You can optionally disable trust enforcement, for example, if you have other services or ESB processes that call into a service that is part of an ESB process that does not require trust enforcement. You can disable trust enforcement selectively on particular management containers in a node (rather than all of the containers in the node). However, disabling trust enforcement in a management container affects all of the ESB containers deployed in that management container. To disable trust enforcement on a management container: 1. In the Sonic Management Console Configure tab, expand the Containers folder under Configured Objects. 2. Select the management container, right-click, and select Properties. The Edit Container Properties dialog box opens. 3. Select the Environment tab and enter the following JVM argument in the Java VM options section and set it to true: -Dactional.interceptor.DisableTrustZoneEnforcement=true Register a Web Service with Actional Intermediary Since all SOAP/HTTP calls go through Actional Intermediary, you must provide a way to contact Actional Intermediary and for Actional Intermediary to contact an ESB process exposed as a web service. Message traffic flows through a service group, a set of managed web services, web service access points, and message processing blocks. You expose an ESB process as a web service and configure Actional Intermediary with service groups for the web services exposed in Sonic ESB. For information on exposing an ESB process as a web service, see the Wrapping an ESB process as a Web service topic under ESB Process editor in the Sonic Workbench online help. Aurea Software, Inc. Confidential 233 Copyright 2013 Aurea, Inc.

234 Chapter 12: Using Actional Trust Zones in Sonic ESB To register a web service with Actional Intermediary: 1. Open a browser to the administration console for Actional Intermediary using the URL, your_system_name:4400/sst. 2. Select Service Groups on the left side of the window. The Services page opens on the right side: 3. Click Add Service Group. The Service Group Creation page opens: 4. Select a wizard, for example the Pass Through wizard, which brings a single Web service under management and creates an access point for that managed service. The Service Group - Identification page opens: 5. Enter values for the service group properties: Property Name Type Description Description Enter a name for the service group. Optionally, specify the general type of service you are managing. Optionally, enter any additional information about the service group to help identify it later. Aurea Software, Inc. Confidential 234 Copyright 2013 Aurea, Inc.

235 Implementing Trust Zones in Aurea Sonic ESB 6. Click Next. The Service Group - WSDL/WADL Source page opens: 7. Enter the URL of the WSDL for the ESB process exposed as a web service. You can use the Sonic Management Console to find the WSDL URL: When you enter the WSDL URL you can append?wsdl and Actional Intermediary will use dynamic WSDL retrieval to find the WSDL for the web service. Actional Intermediary imports the WSDL file from the location you specify and stores the WSDL internally. 8. After dynamic WSDL retrieval, the Service Group - Select Service Port page shows the services, and their port, binding, operations, transport, and endpoint. In this example, there is one service exposed by the WSDL: Aurea Software, Inc. Confidential 235 Copyright 2013 Aurea, Inc.

236 Chapter 12: Using Actional Trust Zones in Sonic ESB 9. Click Next and accept the default settings in the following Service Group - Select pages for: a. Operations visible at the access point. For Sonic ESB it is the ESB process exposed by the WSDL. b. Sender delivers the SOAP request to the managed service. For Sonic ESB, the transport is HTTP. c. Application Web service you are bringing under management. In this example it is the default application. d. Documentation optionally link to or enter. e. Security Contract for the access point. This example uses HTTP with no security contract. f. Enable URL to contact Actional Intermediary. 10. Then click Finish. The Status page shows that the service group was successfully created: 11. The service group is not activated by default. Click Activate to activate the service group. The Components section of the page shows the message flow through Actional Intermediary and its: Access points where messages enter Actional Intermediary Managed services where messages leave Actional Intermediary (the ESB process) 12. If you select Service Groups in the list on the left side of the window, you can confirm that the new service group was added to the list on the Services page: Aurea Software, Inc. Confidential 236 Copyright 2013 Aurea, Inc.

237 Implementing Trust Zones in Aurea Sonic ESB For more information on service groups, see: Working with Service Groups chapter in the Actional Intermediary Administration Guide Instrumenting Sonic ESB chapter in the Actional Agent Interceptor Guide Define Trust Zones on Actional Server Follow these steps to define trust zones on Actional Server: 1. Bring Nodes under Actional Management on page Create and Configure Trust Zones on page Add Managed Nodes to a Trust Zone on page 239 Bring Nodes under Actional Management In Actional, a node is a system on the current network where an agent is running. You must bring the nodes where the Actional-enabled ESB containers are deployed as well as Actional Intermediary under Actional management. To bring nodes under Actional management: 1. Open a browser to the Actional Server administration console using the URL, your_system_name:4040/lgserver. 2. In the Configure view, select the Network tab and select Nodes. The Network Nodes page shows the nodes under Actional management: 3. To add a node, follow the steps in the Configuring the Network chapter in the Actional Server SOA Operations Administration Guide: The URL for the LG agent is typically host_name:port_number/lgagent. The default port number is Aurea Software, Inc. Confidential 237 Copyright 2013 Aurea, Inc.

238 Chapter 12: Using Actional Trust Zones in Sonic ESB Create and Configure Trust Zones The Actional Server and Actional Intermediary chapter in the Actional Server Continuous Service Optimization Guide describes how to configure Actional trust zones. However, certain default settings are not appropriate to use with Sonic ESB. To create and configure an Actional trust zone for Sonic ESB: 1. Select the Network tab and select Trust Zones. The Trust Zones page opens: 2. Click Add. The New Trust Zone - General Information page opens with the default settings: 3. Define the following properties for the trust zone: Name Property Trust Calls within Trust Zones Check Caller's IP Address Description Assign a specific name to the trust zone. Check this box (the default is unchecked). Non-Actional Intermediary interceptors can insert Actional trust assertion into the outbound headers. The message can go directly to any other service that is managed (for which an interceptor is checking for trust assertion) and it will pass the trust enforcement check. Remove the check from this box. The IP address of the caller (in the Actional headers) will not be checked. Next, specify the managed nodes for the trust zone. Aurea Software, Inc. Confidential 238 Copyright 2013 Aurea, Inc.

239 Implementing Trust Zones in Aurea Sonic ESB Add Managed Nodes to a Trust Zone The last step in defining trust zones is to add managed nodes to a trust zone and provision the agents. To add managed nodes to a trust zone: 1. Click Next in the New Trust Zone - General Information page. The New Trust Zone - Trusted Nodes page opens: 2. Select the nodes (including the Actional Intermediary node) and click Add to add them to the list of nodes in the trust zone. (If you do not see a node you want to add, it might be in another trust zone. If so, select List all managed nodes.) 3. Click Finish. The Trust Zone Details page shows the trust zone settings and the trusted nodes: 4. Click the Provisioning link. The Provisioning page opens 5. Select all the nodes added to the trust zone and click Provision. Aurea Software, Inc. Confidential 239 Copyright 2013 Aurea, Inc.

Open Source Used In TSP

Open Source Used In TSP Open Source Used In TSP 3.5.11 Cisco Systems, Inc. www.cisco.com Cisco has more than 200 offices worldwide. Addresses, phone numbers, and fax numbers are listed on the Cisco website at www.cisco.com/go/offices.

More information

Preface. Audience. Cisco IOS Software Documentation. Organization

Preface. Audience. Cisco IOS Software Documentation. Organization This preface describes the audience, organization, and conventions of this publication, and provides information on how to obtain related documentation. Cisco documentation and additional literature are

More information

Documentation Roadmap for Cisco Prime LAN Management Solution 4.2

Documentation Roadmap for Cisco Prime LAN Management Solution 4.2 Documentation Roadmap for Cisco Prime LAN Thank you for purchasing Cisco Prime LAN Management Solution (LMS) 4.2. This document provides an introduction to the Cisco Prime LMS and lists the contents of

More information

TWAIN driver User s Guide

TWAIN driver User s Guide 4037-9571-05 TWAIN driver User s Guide Contents 1 Introduction 1.1 System requirements...1-1 2 Installing the TWAIN Driver 2.1 Installation procedure...2-1 To install the software...2-1 2.2 Uninstalling...2-1

More information

MagicInfo Express Content Creator

MagicInfo Express Content Creator MagicInfo Express Content Creator MagicInfo Express Content Creator User Guide MagicInfo Express Content Creator is a program that allows you to conveniently create LFD content using a variety of templates.

More information

PageScope Box Operator Ver. 3.2 User s Guide

PageScope Box Operator Ver. 3.2 User s Guide PageScope Box Operator Ver. 3.2 User s Guide Box Operator Contents 1 Introduction 1.1 System requirements...1-1 1.2 Restrictions...1-1 2 Installing Box Operator 2.1 Installation procedure...2-1 To install

More information

About This Guide. and with the Cisco Nexus 1010 Virtual Services Appliance: N1K-C1010

About This Guide. and with the Cisco Nexus 1010 Virtual Services Appliance: N1K-C1010 This guide describes how to use Cisco Network Analysis Module Traffic Analyzer 4.2 (NAM 4.2) software. This preface has the following sections: Chapter Overview, page xvi Audience, page xvii Conventions,

More information

TheGreenBow VPN Client ios User Guide

TheGreenBow VPN Client ios User Guide www.thegreenbow.com TheGreenBow VPN Client ios User Guide Property of TheGreenBow 2018 Table of Contents 1 Presentation... 3 1.1 TheGreenBow VPN Client... 3 1.2 TheGreenBow VPN Client main features...

More information

DAP Controller FCO

DAP Controller FCO Release Note DAP Controller 6.40.0412 FCO 2016.046 System : Business Mobility IP DECT Date : 30 June 2016 Category : Maintenance Product Identity : DAP Controller 6.40.0412 Queries concerning this document

More information

SkyPilot OS Installation: Fedora Core 5

SkyPilot OS Installation: Fedora Core 5 SkyPilot OS Installation: Fedora Core 5 PN 671-00024-01 2006 SkyPilot Networks, Inc. All rights reserved This publication, or parts thereof, may not be reproduced in any form, by any method, for any purpose.

More information

Supported and Interoperable Devices and Softwares for the Cisco Secure Access Control System 5.2

Supported and Interoperable Devices and Softwares for the Cisco Secure Access Control System 5.2 Supported and Interoperable Devices and Softwares for the Cisco Secure Access Control System 5.2 Revised: March 11, 2013 The Cisco Secure Access Control System Release 5.2, hereafter referred to as ACS,

More information

Introduction. The Win32 OpenSSL Installation Group hopes that you enjoy this software and get many years of use out of it!

Introduction. The Win32 OpenSSL Installation Group hopes that you enjoy this software and get many years of use out of it! Introduction Welcome to the Win32 OpenSSL Installation Project. This project is designed to make it easy for Windows developers to get OpenSSL binaries (DLLs) installed and enable programmers to quickly

More information

DAP Controller FCO

DAP Controller FCO Release Note DAP Controller 6.61.0790 System : Business Mobility IP DECT Date : 20 December 2017 Category : General Release Product Identity : DAP Controller 6.61.0790 Queries concerning this document

More information

JD Edwards World User Reserved Information. Version A9.2

JD Edwards World User Reserved Information. Version A9.2 JD Edwards World User Reserved Information Version A9.2 Revised June 30, 2009 Copyright Notice Copyright 2009, Oracle. All rights reserved. Trademark Notice Oracle is a registered trademark of Oracle Corporation

More information

Conettix Universal Dual Path Communicator B465

Conettix Universal Dual Path Communicator B465 Conettix Universal Dual Path Communicator B465 en Release Notes Conettix Universal Dual Path Communicator Table of contents en 3 Table of contents 1 Introduction 4 1.1 Requirements 4 2 Version 2.00.000

More information

Novell Audit 2.0 Administration Guide. novdocx (ENU) 10 August Novell Audit ADMINISTRATION GUIDE.

Novell Audit 2.0 Administration Guide. novdocx (ENU) 10 August Novell Audit ADMINISTRATION GUIDE. Novell Audit 2.0 Administration Guide Novell Audit 2.0 July 14, 2006 ADMINISTRATION GUIDE www.novell.com Legal Notices Novell, Inc. makes no representations or warranties with respect to the contents or

More information

Supported and Interoperable Devices and Software for Cisco Secure Access Control System 5.4

Supported and Interoperable Devices and Software for Cisco Secure Access Control System 5.4 Supported and Interoperable Devices and Software for Cisco Secure Access Control System 5.4 Revised: January 30, 2014 The Cisco Secure Access Control System Release 5.4, hereafter referred to as ACS, works

More information

Bar Code Discovery. Administrator's Guide

Bar Code Discovery. Administrator's Guide Bar Code Discovery Administrator's Guide November 2012 www.lexmark.com Contents 2 Contents Overview...3 Configuring the application...4 Configuring the application...4 Configuring Bar Code Discovery...4

More information

Crypto Application. version 1.2

Crypto Application. version 1.2 Crypto Application version 1.2 The Erlang/OTP SSL application includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/). Copyright (c) 1998-2002 The OpenSSL

More information

PRODUCT SPECIFIC LICENSE TERMS Sybase Enterprise Portal Version 5 Enterprise Edition ( Program )

PRODUCT SPECIFIC LICENSE TERMS Sybase Enterprise Portal Version 5 Enterprise Edition ( Program ) PRODUCT SPECIFIC LICENSE TERMS Sybase Enterprise Portal Version 5 Enterprise Edition ( Program ) IN ADDITION TO THE LICENSE TERMS SET OUT IN THE SYBASE LICENSE AGREEMENT, THE FOLLOWING ADDITIONAL OR DIFFERENT

More information

IETF TRUST. Legal Provisions Relating to IETF Documents. February 12, Effective Date: February 15, 2009

IETF TRUST. Legal Provisions Relating to IETF Documents. February 12, Effective Date: February 15, 2009 IETF TRUST Legal Provisions Relating to IETF Documents February 12, 2009 Effective Date: February 15, 2009 1. Background The IETF Trust was formed on December 15, 2005, for, among other things, the purpose

More information

PRODUCT SPECIFIC LICENSE TERMS Sybase Enterprise Portal Version 5 Application Edition ( Program )

PRODUCT SPECIFIC LICENSE TERMS Sybase Enterprise Portal Version 5 Application Edition ( Program ) PRODUCT SPECIFIC LICENSE TERMS Sybase Enterprise Portal Version 5 Application Edition ( Program ) IN ADDITION TO THE LICENSE TERMS SET OUT IN THE SYBASE LICENSE AGREEMENT, THE FOLLOWING ADDITIONAL OR DIFFERENT

More information

IETF TRUST. Legal Provisions Relating to IETF Documents. Approved November 6, Effective Date: November 10, 2008

IETF TRUST. Legal Provisions Relating to IETF Documents. Approved November 6, Effective Date: November 10, 2008 IETF TRUST Legal Provisions Relating to IETF Documents Approved November 6, 2008 Effective Date: November 10, 2008 1. Background The IETF Trust was formed on December 15, 2005, for, among other things,

More information

JD Edwards World EDI Error Notification. Version A9.2

JD Edwards World EDI Error Notification. Version A9.2 JD Edwards World EDI Error Notification Version A9.2 Revised June 8, 2009 Copyright Notice Copyright 2009, Oracle. All rights reserved. Trademark Notice Oracle is a registered trademark of Oracle Corporation

More information

Ecma International Policy on Submission, Inclusion and Licensing of Software

Ecma International Policy on Submission, Inclusion and Licensing of Software Ecma International Policy on Submission, Inclusion and Licensing of Software Experimental TC39 Policy This Ecma International Policy on Submission, Inclusion and Licensing of Software ( Policy ) is being

More information

Ecma International Policy on Submission, Inclusion and Licensing of Software

Ecma International Policy on Submission, Inclusion and Licensing of Software Ecma International Policy on Submission, Inclusion and Licensing of Software Experimental TC39 Policy This Ecma International Policy on Submission, Inclusion and Licensing of Software ( Policy ) is being

More information

US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Service Data Objects (SDO) DFED Sample Application README Copyright IBM Corporation, 2012, 2013 US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract

More information

Installing the Shrew Soft VPN Client

Installing the Shrew Soft VPN Client Windows Install Installing the Shrew Soft VPN Client ShrewVPNWindows201211-01 Global Technology Associates 3505 Lake Lynda Drive Suite 109 Orlando, FL 32817 Tel: +1.407.380.0220 Fax. +1.407.380.6080 Email:

More information

SkyPilot EMS Installation

SkyPilot EMS Installation SkyPilot EMS Installation 671-00004-01 Rev B 2006 SkyPilot Networks, Inc. All rights reserved This publication, or parts thereof, may not be reproduced in any form, by any method, for any purpose. Product

More information

Juniper Networks Steel-Belted Radius Carrier

Juniper Networks Steel-Belted Radius Carrier Juniper Networks Steel-Belted Radius Carrier Installation Guide Release 8.3.0 Modified: 2017-03-07 Juniper Networks, Inc. 1133 Innovation Way Sunnyvale, California 94089 USA 408-745-2000 www.juniper.net

More information

JP1/Automatic Job Management System 3 - Definition Assistant Description, Operator's Guide and Reference

JP1/Automatic Job Management System 3 - Definition Assistant Description, Operator's Guide and Reference JP1 Version 11 JP1/Automatic Job Management System 3 - Definition Assistant Description, Operator's Guide and Reference 3021-3-B25-20(E) Notices Relevant program products For details about the applicable

More information

ColdFusion Builder 3.2 Third Party Software Notices and/or Additional Terms and Conditions

ColdFusion Builder 3.2 Third Party Software Notices and/or Additional Terms and Conditions ColdFusion Builder 3.2 Third Party Software Notices and/or Additional Terms and Conditions Date Generated: 2018/09/10 Apache Tomcat ID: 306 Apache Foundation and Contributors This product includes software

More information

iwrite technical manual iwrite authors and contributors Revision: 0.00 (Draft/WIP)

iwrite technical manual iwrite authors and contributors Revision: 0.00 (Draft/WIP) iwrite technical manual iwrite authors and contributors Revision: 0.00 (Draft/WIP) June 11, 2015 Chapter 1 Files This section describes the files iwrite utilizes. 1.1 report files An iwrite report consists

More information

Adobe Connect. Adobe Connect. Deployment Guide

Adobe Connect. Adobe Connect. Deployment Guide Deployment Guide VERSION: 1.0 UPDATED: MARCH 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies logo are registered trademarks

More information

Open Source Used In Cisco Configuration Professional for Catalyst 1.0

Open Source Used In Cisco Configuration Professional for Catalyst 1.0 Open Source Used In Cisco Configuration Professional for Catalyst 1.0 Cisco Systems, Inc. www.cisco.com Cisco has more than 200 offices worldwide. Addresses, phone numbers, and fax numbers are listed on

More information

Sophos Endpoint Security and Control standalone startup guide

Sophos Endpoint Security and Control standalone startup guide Sophos Endpoint Security and Control standalone startup guide Product version: 10.2 Document date: September 2012 Contents 1 Before you begin...3 2 Install Sophos Endpoint Security and Control...4 3 Configure

More information

This section describes new Polycom QDX 6000 hardware.

This section describes new Polycom QDX 6000 hardware. PLEASE NOTE 4.0.1 UPGRADE DEPENDENCY: Customers who used data pass through in 4.0 will need to use a new cable after the upgrade. The part number for the new Data Pass-Through cable is 2457-32892-001.

More information

Fujitsu ScandAll PRO V2.1.5 README

Fujitsu ScandAll PRO V2.1.5 README -------------------------------------------------------- Fujitsu ScandAll PRO V2.1.5 README -------------------------------------------------------- Copyright PFU Limited 2007-2017 This file contains information

More information

End User License Agreement

End User License Agreement End User License Agreement Kyocera International, Inc. ( Kyocera ) End User License Agreement. CAREFULLY READ THE FOLLOWING TERMS AND CONDITIONS ( AGREEMENT ) BEFORE USING OR OTHERWISE ACCESSING THE SOFTWARE

More information

QuarkXPress Server Manager 8.0 ReadMe

QuarkXPress Server Manager 8.0 ReadMe QuarkXPress Server Manager 8.0 ReadMe CONTENTS Contents QuarkXPress Server Manager 8.0 ReadMe...3 What's New in QuarkXPress Server Manager 8...4 Deprecated features, new stubs, and deploying SDK classes...4

More information

JD Edwards EnterpriseOne Date Utility

JD Edwards EnterpriseOne Date Utility JD Edwards EnterpriseOne Date Utility June 2010 JD Edwards EnterpriseOne Date Utility Releases Xe thru 9.0 Copyright Notice Copyright 2010, Oracle and/or its affiliates. All rights reserved. Trademark

More information

VMware vcenter Log Insight Manager. Deployment Guide

VMware vcenter Log Insight Manager. Deployment Guide VMware vcenter Log Insight Manager Deployment Guide VERSION: 6.0 UPDATED: JULY 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies

More information

Splunk. Splunk. Deployment Guide

Splunk. Splunk. Deployment Guide Deployment Guide VERSION: 1.0 UPDATED: JULY 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies logo are registered trademarks

More information

Packet Trace Guide. Packet Trace Guide. Technical Note

Packet Trace Guide. Packet Trace Guide. Technical Note Packet Trace Guide Technical Note VERSION: 2.0 UPDATED: JANUARY 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies logo

More information

RTI Secure WAN Transport

RTI Secure WAN Transport RTI Secure WAN Transport Core Libraries and Utilities Release Notes Version 5.1.0 2013 Real-Time Innovations, Inc. All rights reserved. Printed in U.S.A. First printing. December 2013. Trademarks Real-Time

More information

BlackBerry Enterprise Service 10. September 10, 2014 Version: 10 and 10.1.x. Compatibility Matrix

BlackBerry Enterprise Service 10. September 10, 2014 Version: 10 and 10.1.x. Compatibility Matrix BlackBerry Enterprise Service 10 September 10, 2014 Version: 10 and 10.1.x Compatibility Matrix Published: 2014-09-10 SWD-20140910144217710 Contents 1...4 Introduction...4 Legend... 4 Operating system...

More information

Introducing Tivoli Kernel Services Administration

Introducing Tivoli Kernel Services Administration Introducing Tivoli Kernel Services Administration Version 1.2 Introducing Tivoli Kernel Services Administration Version 1.2 Introducing Tivoli Kernel Services Administration Copyright Notice Copyright

More information

ARTIX PROGRESS. WSDL Extension Reference

ARTIX PROGRESS. WSDL Extension Reference ARTIX PROGRESS WSDL Extension Reference Version 5.6, December 2011 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. These materials and all Progress software

More information

Epic. Epic Systems. Deployment Guide

Epic. Epic Systems. Deployment Guide Epic Systems Deployment Guide VERSION: 1.0 UPDATED: AUGUST 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies logo are

More information

LoadMaster VMware Horizon (with View) 6. Deployment Guide

LoadMaster VMware Horizon (with View) 6. Deployment Guide LoadMaster VMware Horizon (with View) 6 Deployment Guide VERSION: 6.0 UPDATED: MARCH 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the

More information

im2020, im2520, im2520f, im Printer Management Utility

im2020, im2520, im2520f, im Printer Management Utility 4514-775-04 Printer Management Utility Contents im2020, im2520, im2520f, im520 Contents 1 Introduction 1.1 Welcome...1-1 Trademark Acknowledgements...1-1 OpenSSL Statement...1-2 1.2 System Requirements...1-5

More information

Fiery S450 65C-KM. Network Scanner

Fiery S450 65C-KM. Network Scanner Fiery S450 65C-KM Network Scanner Chapter 1: Introduction Chapter 2: Overview of the Scanning Features Chapter 3: Registration of the destination Chapter 4: Transmission to the registered destination Chapter

More information

Simba Cassandra ODBC Driver with SQL Connector

Simba Cassandra ODBC Driver with SQL Connector Simba Cassandra ODBC Driver with SQL Connector Last Revised: March 26, 2013 Simba Technologies Inc. Copyright 2012-2013 Simba Technologies Inc. All Rights Reserved. Information in this document is subject

More information

Migration Tool. Migration Tool (Beta) Technical Note

Migration Tool. Migration Tool (Beta) Technical Note Migration Tool (Beta) Technical Note VERSION: 6.0 UPDATED: MARCH 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies logo

More information

Copyright PFU LIMITED

Copyright PFU LIMITED -------------------------------------------------------- PaperStream Capture 1.0.12 README File -------------------------------------------------------- Copyright PFU LIMITED 2013-2015 This file contains

More information

RSA Two Factor Authentication

RSA Two Factor Authentication RSA Two Factor Authentication Feature Description VERSION: 6.0 UPDATED: JULY 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies

More information

Compatibility Matrix. Good Control and Good Proxy. June 4, 2018

Compatibility Matrix. Good Control and Good Proxy. June 4, 2018 Compatibility Matrix Good Control and Good Proxy June 4, 2018 Published: 2018-06-04 SWD-20180604161707961 Contents Introduction... 4 Legend... 4 Good Control server... 5 Operating system...5 Database server...5

More information

Moodle. Moodle. Deployment Guide

Moodle. Moodle. Deployment Guide Moodle Deployment Guide VERSION: 6.0 UPDATED: MARCH 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies logo are registered

More information

Release Notes. BlackBerry Enterprise Identity

Release Notes. BlackBerry Enterprise Identity Release Notes BlackBerry Enterprise Identity Published: 2018-03-13 SWD-20180606100327990 Contents New in this release...4 Fixed issues...5 Known issues... 6 Legal notice...8 New in this release New in

More information

SMASH SCROOGE SHAKER New Features

SMASH SCROOGE SHAKER New Features SMASH 7.3.0 - SCROOGE 4.3.0 - SHAKER 7.3.0 DOLPHIN INTEGRATION SMASH 7.3.0 - SCROOGE 4.3.0 - SHAKER 7.3.0 Dolphin Integration 39 Avenue du Granier - BP 65 - Inovallee - 38242-MEYLAN - FRANCE Phone : +

More information

Release Notes. Polycom QDX 6000 Introduction. Polycom QDX 6000, Version 3.0

Release Notes. Polycom QDX 6000 Introduction. Polycom QDX 6000, Version 3.0 Polycom QDX 6000, Version 3.0 Polycom is pleased to announce the initial release of Polycom QDX 6000 hardware and software. This document provides information about the Polycom QDX 6000 system and version

More information

SkyPilot Web Interface Reference

SkyPilot Web Interface Reference SkyPilot Web Interface Reference 671-00011-01 Rev B 2006 SkyPilot Networks, Inc. All rights reserved This publication, or parts thereof, may not be reproduced in any form, by any method, for any purpose.

More information

Primavera. Contract Manager Installation Guide

Primavera. Contract Manager Installation Guide Primavera Contract Manager Installation Guide Copyright 1996, 2009, Oracle and/or its affiliates. All rights reserved.. The Programs (which include both the software and documentation) contain proprietary

More information

Compatibility Matrix. BlackBerry UEM. March 26, 2018

Compatibility Matrix. BlackBerry UEM. March 26, 2018 Compatibility Matrix BlackBerry UEM March 26, 2018 Published: 2018-03-26 SWD-20180326105755902 Contents Introduction... 4 Legend... 4 BlackBerry UEM server...5 Operating system...5 Database server...5

More information

Prerequisite Softwares and Licenses

Prerequisite Softwares and Licenses Oracle Retail Licensing Information April 2007 This document provides licensing information for all the third-party applications used by the following Oracle Retail applications: Oracle Retail Place Oracle

More information

Lotus G Instant Messaging and Web Conferencing Directory and Database Access Toolkit. Developer s Guide. Version 6.5.1

Lotus G Instant Messaging and Web Conferencing Directory and Database Access Toolkit. Developer s Guide. Version 6.5.1 Lotus Instant Messaging and Web Conferencing Directory and Database Access Toolkit Version 6.5.1 Developer s Guide G210-1728-00 Copyright and Trademark Information Disclaimer THE INFORMATION CONTAINED

More information

User Manual. Date Aug 30, Enertrax DAS Download Client

User Manual. Date Aug 30, Enertrax DAS Download Client EnertraxDL - DAS Download Client User Manual Date Aug 30, 2004 Page 1 Copyright Information Copyright 2004, Obvius Holdings, LLC. All rights reserved. Redistribution and use in source and binary forms,

More information

Static analysis for quality mobile applications

Static analysis for quality mobile applications Static analysis for quality mobile applications Julia Perdigueiro MOTODEV Studio for Android Project Manager Instituto de Pesquisas Eldorado Eric Cloninger Product Line Manager Motorola Mobility Life.

More information

NTLM NTLM. Feature Description

NTLM NTLM. Feature Description Feature Description VERSION: 6.0 UPDATED: JULY 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP Technologies logo are registered

More information

Fiery PRO 80 /S450 65C-KM

Fiery PRO 80 /S450 65C-KM Fiery PRO 80 /S450 65C-KM Network Scanner/Web Connection Chapter 1: Introduction Chapter 2: Overview of the Scanning Features Chapter 3: Registration of the destination Chapter 4: Transmission to the registered

More information

CA File Master Plus. Release Notes. Version

CA File Master Plus. Release Notes. Version CA File Master Plus Release Notes Version 9.0.00 This Documentation, which includes embedded help systems and electronically distributed materials, (hereinafter referred to as the Documentation ) is for

More information

Quick Start Guide. BlackBerry Workspaces app for Android. Version 5.0

Quick Start Guide. BlackBerry Workspaces app for Android. Version 5.0 Quick Start Guide BlackBerry Workspaces app for Android Version 5.0 Published: 2017-01-22 SWD-20170122060917401 Contents Overview... 4 Browse workspaces, folders, and files... 5 Create new workspaces,

More information

KEMP Driver for Red Hat OpenStack. KEMP LBaaS Red Hat OpenStack Driver. Installation Guide

KEMP Driver for Red Hat OpenStack. KEMP LBaaS Red Hat OpenStack Driver. Installation Guide KEMP LBaaS Red Hat OpenStack Driver Installation Guide VERSION: 2.0 UPDATED: AUGUST 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP

More information

JD Edwards EnterpriseOne 8.12 Standalone Client Installation Guide. for the Oracle Application Server

JD Edwards EnterpriseOne 8.12 Standalone Client Installation Guide. for the Oracle Application Server JD Edwards EnterpriseOne 8.12 Standalone Client Installation Guide for the Oracle Application Server April 2006 JD Edwards EnterpriseOne 8.12 Standalone Client Installation Guide Copyright 2006, Oracle.

More information

Management Software Web Browser User s Guide

Management Software Web Browser User s Guide FS900M Series Fast Ethernet Switches Management Software Web Browser User s Guide 613-002073 Rev. A Copyright 2014, Allied Telesis, Inc. All rights reserved. No part of this publication may be reproduced

More information

PROGRESS ORBIX. COMet Programmer s Guide and Reference

PROGRESS ORBIX. COMet Programmer s Guide and Reference PROGRESS ORBIX COMet Programmer s Guide and Reference Version 6.3.5, July 2011 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. These materials and all Progress

More information

Enhanced Support Facility User's Guide For REMCS

Enhanced Support Facility User's Guide For REMCS J2X1-7753-01ENZ0(01) Enhanced Support Facility User's Guide For REMCS Preface Preface Purpose of This Guide This guide explains the setup and operation procedures for using the REMote Customer Support

More information

Enterprise Payment Solutions. Scanner Installation April EPS Scanner Installation: Quick Start for Remote Deposit Complete TM

Enterprise Payment Solutions. Scanner Installation April EPS Scanner Installation: Quick Start for Remote Deposit Complete TM Enterprise Payment Solutions Complete TM Portions of this software: Copyright 2004-2013 Apache Software Foundation Copyright 2005 Paul Querna Copyright 2008 Marc Gravell Copyright 2000-2007 Niels Provos

More information

LoadMaster Clustering

LoadMaster Clustering Introduction LoadMaster Clustering Feature Description VERSION: 9.0 UPDATED: JULY 2016 Copyright Notices Copyright 2002-2016 KEMP Technologies, Inc.. All rights reserved.. KEMP Technologies and the KEMP

More information

MERIDIANSOUNDINGBOARD.COM TERMS AND CONDITIONS

MERIDIANSOUNDINGBOARD.COM TERMS AND CONDITIONS MERIDIANSOUNDINGBOARD.COM TERMS AND CONDITIONS Introduction This document sets forth the terms and conditions ("Terms and Conditions") governing your use of the MeridianHealth.com Web site ("Web Site")

More information

JP1/File Transmission Server/FTP Description, Reference and Operator's Guide

JP1/File Transmission Server/FTP Description, Reference and Operator's Guide JP1 Version 12 for Windows Systems JP1/File Transmission Server/FTP Description, Reference and Operator's Guide 3021-3-D38(E) Notices Relevant program products P-2A41-94CL JP1/File Transmission Server/FTP

More information

Open Source and Standards: A Proposal for Collaboration

Open Source and Standards: A Proposal for Collaboration ETSI Workshop on Open Source and ization: Legal Interactions September 16, 2016 Sophia Antipolis Open Source and s: A Proposal for Collaboration David Marr VP & Legal Counsel Open Source Group Qualcomm

More information

VP-UML Installation Guide

VP-UML Installation Guide Visual Paradigm for UML 6.0 Installation Guide The software and documentation are furnished under the Visual Paradigm for UML license agreement and may be used only in accordance with the terms of the

More information

Oracle Binary Code License Agreement for Java Secure Sockets Extension for Connected Device Configuration 1.0.2

Oracle Binary Code License Agreement for Java Secure Sockets Extension for Connected Device Configuration 1.0.2 Oracle Binary Code License Agreement for Java Secure Sockets Extension 1.0.3 for Connected Device Configuration 1.0.2 ORACLE AMERICA, INC. ("ORACLE"), FOR AND ON BEHALF OF ITSELF AND ITS SUBSIDIARIES AND

More information

Intel Stress Bitstreams and Encoder (Intel SBE) 2017 AVS2 Release Notes (Version 2.3)

Intel Stress Bitstreams and Encoder (Intel SBE) 2017 AVS2 Release Notes (Version 2.3) Intel Stress Bitstreams and Encoder (Intel SBE) 2017 AVS2 Release Notes (Version 2.3) Overview Changes History Installation Package Contents Known Limitations Attributions Legal Information Overview The

More information

Bar Code Discovery. Administrator's Guide

Bar Code Discovery. Administrator's Guide Bar Code Discovery Administrator's Guide September 2016 www.lexmark.com Contents 2 Contents Overview... 3 Optimizing bar code detection...4 Optimizing bar code detection...4 Configuring the application...5

More information

BlackBerry Enterprise Server Express for Microsoft Exchange

BlackBerry Enterprise Server Express for Microsoft Exchange BlackBerry Enterprise Server Express for Microsoft Exchange Compatibility Matrix March 25, 2013 2013 Research In Motion Limited. All rights reserved. www.rim.com Page: 1 Operating Systems: BlackBerry Enterprise

More information

Release 3.7 January 2018 User Guide

Release 3.7 January 2018 User Guide Release 3.7 January 2018 User Guide ABILITY Network Inc Copyright and Trademark Copyright Copyright 2018 ABILITY Network Inc. All Rights Reserved. All text, images, and graphics, and other materials in

More information

Disaster Recovery Guide

Disaster Recovery Guide Disaster Recovery Guide BlackBerry UEM Version 12.9 Published: 2018-07-16 SWD-20180628140917721 Contents Overview... 4 Servers and services... 4 About BEMS servers... 4 BlackBerry Proxy... 5 Example of

More information

ARTIX PROGRESS. Using the Artix Library

ARTIX PROGRESS. Using the Artix Library ARTIX PROGRESS Using the Artix Library Version 5.6, May 2011 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. These materials and all Progress software products

More information

Terms of Use. Changes. General Use.

Terms of Use. Changes. General Use. Terms of Use THESE TERMS AND CONDITIONS (THE TERMS ) ARE A LEGAL CONTRACT BETWEEN YOU AND SPIN TRANSFER TECHNOLOGIES ( SPIN TRANSFER TECHNOLOGIES, STT, WE OR US ). THE TERMS EXPLAIN HOW YOU ARE PERMITTED

More information

Getting Started with Automatic Provisioning

Getting Started with Automatic Provisioning Getting Started with Automatic Provisioning PN 671-00024-01 2006 SkyPilot Networks, Inc. All rights reserved This publication, or parts thereof, may not be reproduced in any form, by any method, for any

More information

TCP-Relay. TCP-Relay

TCP-Relay. TCP-Relay TCP-Relay i TCP-Relay TCP-Relay ii COLLABORATORS TITLE : TCP-Relay ACTION NAME DATE SIGNATURE WRITTEN BY Marc Huber November 12, 2017 REVISION HISTORY NUMBER DATE DESCRIPTION NAME TCP-Relay iii Contents

More information

MSDE Copyright (c) 2001, Microsoft Corporation. All rights reserved.

MSDE Copyright (c) 2001, Microsoft Corporation. All rights reserved. Trend Micro Incorporated reserves the right to make changes to this document and to the products described herein without notice. Before installing and using the software, please review the readme file,

More information

Legal notices : Introduction Where we're coming from...13 Conventions in this book...13 Finding instructions for your role...

Legal notices : Introduction Where we're coming from...13 Conventions in this book...13 Finding instructions for your role... A Guide to QPS 7.4 CONTENTS Contents Legal notices...7 1: Introduction...13 Where we're coming from...13 Conventions in this book...13 Finding instructions for your role...14 2: The QPS user interface...15

More information

BlackBerry Enterprise Server Express for IBM Lotus Domino. Compatibility Matrix. September 20, 2012

BlackBerry Enterprise Server Express for IBM Lotus Domino. Compatibility Matrix. September 20, 2012 BlackBerry Enterprise Server Express for IBM Lotus Domino Compatibility Matrix September 20, 2012 2012 Research In Motion Limited. All rights reserved. www.rim.com Page: 1 Operating Systems: BlackBerry

More information

User s Guide [Fax Driver Operations]

User s Guide [Fax Driver Operations] User s Guide [Fax Driver Operations] Introduction Introduction Thank you for purchasing this machine. If the optional fax kit is installed on this machine, faxes can be sent directly from Windows-compatible

More information

Novell extend INSTALLING NOVELL EXTEND

Novell extend INSTALLING NOVELL EXTEND Novell extend 5.0 www.novell.com INSTALLING NOVELL EXTEND Legal Notices Copyright 2003 Novell, Inc. All rights reserved. No part of this publication may be reproduced, photocopied, stored on a retrieval

More information

Compatibility Matrix. BlackBerry UEM. December 22, 2016

Compatibility Matrix. BlackBerry UEM. December 22, 2016 Compatibility Matrix BlackBerry UEM December 22, 2016 Published: 2016-12-22 SWD-20161220124335071 Contents Introduction... 4 Legend... 4 BlackBerry UEM server...5 Operating system...5 Database server...5

More information

User Guide. Calibrated Software, Inc.

User Guide. Calibrated Software, Inc. User Guide Calibrated Software, Inc. Copyright 2008 Calibrated Software, Inc. All rights reserved. www.calibratedsoftware.com Your rights to the software are governed by the accompanying Software License

More information