PROGRESS ORBIX - Micro Focus Supportline · management programmer’s guide iv loss of use, data,...

124
ORBIX ® PROGRESS ® Management Programmer’s Guide Version 6.3.5, July 2011

Transcript of PROGRESS ORBIX - Micro Focus Supportline · management programmer’s guide iv loss of use, data,...

  • ORBIX

    PROGRESS

    Management ProgrammersGuide

    Version 6.3.5, July 2011

  • 2011 Progress Software Corporation and/or its subsidiaries or affiliates. All rights reserved. These materials and all Progress software products are copyrighted and all rights are reserved by Progress Soft ware Corporation. The information in these materials is subject to change without notice, and Progress Software Corporation assumes no responsibility for any errors that may appear therein. The references in these materials to specific platforms supported are subject to change.

    Actional, Apama, Artix, Business Empowerment, Business Making Progress, DataDirect (and design), DataDi rect Connect, DataDirect Connect64, DataDirect Technologies, Data-Direct XML Converters, DataDirect XQuery, DataXtend, Dynamic Routing Architecture, EdgeXtend, Empowerment Center, Fathom, Fuse Media tion Router, Fuse Message Broker, Fuse Services Framework, IntelliStream, IONA, Making Software Work Together, Mind-reef, ObjectStore, OpenEdge, Orbix, PeerDirect, POSSENET, Powered by Progress, Pow erTier, Progress, Progress DataXtend, Progress Dynamics, Progress Business Empow-erment, Progress Empowerment Center, Progress Empowerment Program, Progress OpenEdge, Progress Profiles, Progress Results, Progress Software Business Making Progress, Progress Software Developers Network, Progress Sonic, ProVision, PS Select, Savvion, SequeLink, Shadow, SOAPscope, SOAPStation, Sonic, Sonic ESB, SonicMQ, Sonic Orchestration Server, SpeedScript, Stylus Studio, Technical Empowerment, Web-Speed, Xcalia (and design), and Your Software, Our Technology-Experience the Connec-tion are registered trademarks of Progress Software Corporation or one of its affiliates or subsidiaries in the U.S. and/or other countries. AccelEvent, Apama Dashboard Studio, Apama Event Manager, Apama Event Modeler, Apama Event Store, Apama Risk Firewall, AppsAlive, AppServer, ASPen, ASP-in-a-Box, BusinessEdge, Cache-Forward, CloudEdge, DataDirect Spy, DataDirect SupportLink, Fuse, FuseSource, Future Proof, GVAC, High Performance Integration, Object Store Inspector, ObjectStore Performance Expert, Open-Access, Orbacus, Pantero, POSSE, ProDataSet, Progress Arcade, Progress CloudEdge, Progress Control Tower, Progress ESP Event Manager, Progress ESP Event Modeler, Progress Event Engine, Progress RFID, Progress RPM, PSE Pro, SectorAlliance, SeeThinkAct, Shadow z/Services, Shadow z/Direct, Shadow z/Events, Shadow z/Presenta-tion, Shadow Studio, SmartBrowser, SmartComponent, SmartDataBrowser, SmartDataOb-jects, SmartDataView, SmartDialog, SmartFolder, Smart Frame, SmartObjects, SmartPanel, SmartQuery, SmartViewer, SmartWindow, Sonic Business Integration Suite, Sonic Process Manager, Sonic Collaboration Server, Sonic Continuous Availability Architecture, Sonic Database Service, Sonic Workbench, Sonic XML Server, The Brains Behind BAM, Web-Client, and Who Makes Progress are trademarks or service marks of Progress Software Cor-poration and/or its subsidiaries or affiliates in the U.S. and other countries. Java is a registered trademark of Oracle and/or its affiliates. Any other marks con tained herein may be trademarks of their respective owners. Third Party Acknowledgements:

    Progress Orbix v6.3.5 incorporates Jakarata-struts 1.0.2 from the Apache Software Founda-tion (http://www.apache.org). Such Apache Technology is subject to the following terms and conditions: The Apache Soft ware License, Version 1.1 Copyright (c) 1999-2001 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 follow-ing disclaimer. 2. Redistributions in binary form must reproduce the above copy right notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the dis-tribution. 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 (http://www.apache.org/)." Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear. 4. The names "The Jakarta Project", "Struts", 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 [email protected]. 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 MER CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DIS CLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBU TORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEM-PLARY, OR CONSEQUEN TIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCURE-MENT OF SUB STITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIA BILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH-ERWISE) 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 Soft ware Foun dation. For more information on the Apache Software Foundation, please see .

    Progress Orbix v6.3.5 incorporates Jakarta-bcel 5.0 from the Apache Software Foundation (http://www.apache.org). Such Apache Technology is subject to the following terms and conditions: The Apache Software License, Version 1.1 Copy right (c) 2001 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 docu mentation and/or other materials provided with the distribution. 3. The end-user documentation included with the redistribu-tion, if any, must include the following acknowledgment: "This product includes software developed by the Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear. 4. The names "Apache" and "Apache Software Foundation" and "Apache BCEL" must not be used to endorse or promote products derived from this software with out prior written permission. For written permission, please con-tact [email protected]. 5. Products derived from this software may not be called "Apache", "Apache BCEL", 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 WAR-RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTA-BILITY 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;

    iii

  • Management Programmers Guide

    LOSS OF USE, DATA, OR PROFITS; OR BUSI NESS 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 Founda tion. For more information on the Apache Software Foundation, please see .

    Progress Orbix v6.3.5 incorporates Jakarat-regexp 1.2 from the Apache Software Foundation (http://www.apache.org). Such Apache Technology is subject to the following terms and conditions: The Apache Software License, Version 1.1 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 redistri bution, if any, must include the following acknowledgment: "This product includes software devel-oped by the Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear. 4. The names "The Jakarta Project", "Jakarta -Regexp", and "Apache Software Foundation" and "Apache BCEL" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact [email protected]. 5. Products derived from this soft-ware 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 DIS-CLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBU-TORS BE LIA BLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUB-STITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUP-TION) 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. For more information on the Apache Software Foundation, please see .

    Progress Orbix v6.3.5 incorporates the Jakarta-log4j 1.2.6 from the Apache Software Foundation (http://www.apache.org). Such Apache Technology is subject to the following terms and conditions: The Apache Software License, Version 1.1 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 dis claimer in the documentation and/or other materials provided with the distribution. 3. The end-user documentation included with the redistribu-tion, if any, must include the following acknowledgment: "This product includes software developed by the Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in

    iv

  • the software itself, if and wherever such third-party acknowledgments normally appear. 4. The names "log4j" and "Apache Software Foundation" and "Apache BCEL" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please con-tact [email protected]. 5. Products derived from this software may not be called "Apache", nor may "Apache" appear in their name, without prior written per mission 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 (INCLUD-ING, 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 LIABIL ITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUD ING 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. For more informa-tion on the Apache Software Foun dation, please see .

    Progress Orbix v6.3.5 incorporates Ant 1.5 from the Apache Software Foundation (http://www.apache.org). Such technology is subject to the following terms and conditions: The Apache Software License, Version 1.1 Copyright (c) 2000-2002 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 condi-tions are met: 1. Redistributions of source code must retain the above copyright notice, this list of condi-tions and the fol lowing 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 pro-vided 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 (http://www.apache.org/)." Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear. 4. The names "Ant" and "Apache Soft-ware Foundation" and "Apache BCEL" must not be used to endorse or promote products derived from this software without prior writ ten permission. For written permission, please contact [email protected]. 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 MER CHANTABILITY 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, PRO-CUREMENT 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 OTH-ERWISE) 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 contri butions made by many individuals on behalf of the Apache Software Foundation. For more information on the Apache Soft-ware Foundation, please see .

    v

  • Management Programmers Guide

    Progress Orbix v6.3.5 incorporates Xalan-j 2.3.1 from the Apache Software Foundation (http://www.apache.org). Such Apache Technology is subject to the following terms and conditions: The Apache Soft ware License, Version 1.1. 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 redistribu-tion, if any, must include the following acknowledgment: "This product includes software developed by the Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear. 4. The names "Xalan" and "Apache Software Foundation" and "Apache BCEL" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please con-tact [email protected]. 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, INCLUD-ING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER CHANTABILITY AND FIT-NESS 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 THE-ORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEG-LIGENCE 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 contri butions made by many individuals on behalf of the Apache Software Foundation. For more informa-tion on the Apache Software Foundation, please see .

    Progress Orbix v6.3.5 incorporates the Xerces-c++ 2.4 from the Apache Software Foundation (http://www.apache.org). Such Apache Technology is subject to the following terms and conditions: The Apache Software License, Version 1.1. Copyright (c) 1999-2001 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 cop-yright notice, this list of conditions and the following disclaimer. 2. Redis tributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documenta-tion 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 devel-oped by the Apache Software Foundation (http://www.apache.org/)." 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" and "Apache BCEL" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact [email protected]. 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 MERCHANT ABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE

    vi

  • APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUD-ING, 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 Founda tion. For more informa-tion on the Apache Software Foundation, please see .

    Progress Orbix v6.3.5 incorporates xerces-j 2.5 from the Apache Software Foundation (http://www.apache.org). Such Apache Technology is subject to the following terms and conditions: The Apache Software License, Version 1.1. Copy right (c) 1999-2002 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 cop-yright 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 documenta-tion 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 devel-oped by the Apache Software Foundation (http://www.apache.org/)." 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 [email protected]. 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 SOFT-WARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTIC ULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFT-WARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCI-DENTAL, 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 LIA-BILITY, 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 contribu-tions made by many individuals on behalf of the Apache Software Foundation. For more information on the Apache Software Foundation, please see .

    Progress Orbix v6.3.5 incorporates the Tomcat 4.0.4 from the Apache Software Foundation (http://www.apache.org). Such Apache Technology is subject to the following terms and conditions: The Apache Software License, Version 1.1. Copyright (c) 1999, 2000 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 cop-yright notice, this list of conditions and the following disclaimer. 2. Redis tributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documenta-tion and/or other materials provided with the distribution. 3. The end-user documentation included with the

    vii

  • Management Programmers Guide

    redistribution, if any, must include the following acknowledgment: "This product includes software devel-oped by the Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear. 4. The names "The Jakarta Project", "Tomcat" 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 [email protected]. 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 MERCHANT ABILITY 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 (INCLUD-ING, 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. For more informa-tion on the Apache Software Foun dation, please see .

    Progress Orbix v6.3.5 incorporates MCPP 2.6.4 from the MCPP Project. Such technology is subject to the following terms and conditions: Copyright (c) 1998, 2002-2007 Kiyoshi Matsui [email protected] All rights reserved. This software including the files in this directory is provided under the following license. Redistribu tion 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. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 BE LIABLE FOR ANY DIRECT, INDI-RECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCURE MENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THE-ORY OF LIABILITY, WHETHER IN CON TRACT, 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.

    Progress Orbix v6.3.5 incorporates Xalan c++ v1.7 from The Apache Software Foundation. Such technol-ogy is subject to the following terms and conditions: The Apache Software License, Version 1.1 Copyright (c) 1999-2004 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 follow-ing disclaimer. 2. Redis tributions in binary form must reproduce the above copyright notice, this list of con-ditions and the follow ing 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 follow-

    viii

  • ing acknowledgment: "This product includes software developed by the Apache Software Foundation (http://www.apache.org/)." Alternately, this acknowledgment may appear in the software itself, if and wherever such third-party acknowledgments normally appear. 4. The names "Xalan" and "Apache Software Founda-tion" must not be used to endorse or promote prod ucts derived from this software without prior written per-mission. For written permission, please contact [email protected]. 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 PARTICU LAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIA-BLE 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 Soft-ware Foundation and was originally based on software copyright (c) 1999, Lotus Development Corpora-tion., http://www.lotus.com. For more information on the Apache Software Foundation, please see .

    Progress Orbix v6.3.5 incorporates Tcl 8.4.15 from Regents of the University of California, Sun Microsys-tems, Inc., Scriptics Corporation, and other parties. Such technology is subject to the following terms and conditions: This software is copyrighted by the Regents of the University of California, Sun Microsystems, Inc., Scriptics Corporation, and other parties. The following terms apply to all files associated with the soft-ware unless explicitly disclaimed in individual files. The authors hereby grant permission to use, copy, mod-ify, distribute, and license this software and its documentation for any purpose, provided that existing copyright notices are retained in all copies and that this notice is included verbatim in any distributions. No written agreement, license, or royalty fee is required for any of the authorized uses. Modifications to this software may be copyrighted by their authors and need not follow the licensing terms described here, pro-vided that the new terms are clearly indicated on the first page of each file where they apply. IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR DIRECT, INDI-RECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE AUTHORS AND DISTRIBUTORS SPE CIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WAR RANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICU-LAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAIN-TENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFI CATIONS. GOVERNMENT USE: If you are acquiring this software on behalf of the U.S. government, the Government shall have only "Restricted Rights" in the software and related documentation as defined in the Federal Acquisition Regula-tions (FARs) in Clause 52.227.19 (c) (2). If you are acquiring the software on behalf of the Department of Defense, the software shall be classified as "Commercial Computer Software" and the Government shall have only "Restricted Rights" as defined in Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the

    ix

  • Management Programmers Guide

    foregoing, the authors grant the U.S. Government and others acting in its behalf permission to use and dis-tribute the software in accordance with the terms specified in this license.

    Progress Orbix v6.3.5 incorporates bzip2 1.0.2 from Julian Seward. Such Technology is subject to the fol-lowing terms and conditions: This program, "bzip2" and associated library "libbzip2", are copyright (C) 1996-2002 Julian R Seward. 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. The origin of this software must not be misrepresented; you must not claim that you wrote the original soft-ware. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 3. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 4. The name of the author may not be used to endorse or pro-mote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUD-ING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANT ABILITY AND FIT-NESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSE-QUENTIAL 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. Julian Seward, Cambridge, [email protected] bzip2/libbzip2 version 1.0.2 of 30 December 2001.

    Progress Orbix v6.3.5 incorporates zlib 1.2.3 from Jean-loup Gailly and Mark Adler. Such Technology is subject to the following terms and conditions: License /* zlib.h -- interface of the 'zlib' general purpose com-pression library version 1.2.3, July 18th, 2005 Copyright (C) 1995-2000 Jean-loup Gailly and Mark Adler. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: 1. The origin of this software must not be mis represented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. 3. This notice may not be removed or altered from any source distribution. Jean-loup Gailly [email protected] Mark Adler [email protected] */

    Progress Orbix v6.3.5 incorporates the MinML 1.7 from John Wilson. Such Technology is subject to the following terms and conditions: Copyright (c) 1999, John Wilson ([email protected]). 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 dis claimer in the documentation and/or other materials provided with the distribution. All advertising materials mention ing features or use of this soft-ware must display the following acknowledgement: This product includes software devel oped by John

    x

  • Wilson. The name of John Wilson may not be used to endorse or promote products derived from this soft-ware without specific prior written permission. THIS SOFTWARE IS PROVIDED BY JOHN WILSON "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PUR-POSE ARE DISCLAIMED. IN NO EVENT SHALL JOHN WILSON BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUD-ING, 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 LIABIL ITY, 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.

    Progress Orbix v6.3.5 incorporates JDOM vbeta9 from JDOM. Such Technology is subject to the following terms and conditions: LICENSE.txt, v 1.10 2003/04/10 08:36:05 jhunter Exp $ Copyright (C) 2000-2003 Jason Hunter & Brett McLaughlin. All rights reserved. Redistribution and use in source and binary forms, with or with out modification, are permitted provided that the following conditions are met: 1. Redistribu-tions of source code must retain the above copyright notice, this list of conditions, and the following dis-claimer. 2. Redistribu tions in binary form must reproduce the above copyright notice, this list of conditions, and the dis claimer that follows these conditions in the documentation and/or other materials provided with the distribu tion. 3. The name "JDOM" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact . 4. Prod ucts derived from this soft ware may not be called "JDOM", nor may "JDOM" appear in their name, without prior written permission from the JDOM Project Management . In addition, we request (but do not require) that you include in the end-user documentation pro-vided with the redistribution and/or in the soft ware itself an acknowledgement equivalent to the following: "This product includes software developed by the JDOM Project (http://www.jdom.org/)." Alternatively, the acknowledgment may be graphical using the logos available at http://www.jdom.org/images/logos. THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUD-ING, BUT NOT LIMITED TO, THE IMPLIED WAR RANTIES OF MERCHANTABILITY AND FIT-NESS FOR A PARTICULAR PURPOSE ARE DIS CLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT CONTRIBUTORS BE LIA BLE FOR ANY DIRECT, INDIRECT, INCI-DENTAL, 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 LIA-BILITY, WHETHER IN CONTRACT, STRICT LIABIL ITY, 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 contribu-tions made by many individuals on behalf of the JDOM Project and was originally created by Jason Hunter and Brett McLaughlin . For more information on the JDOM Project, please see .

    Progress Orbix v6.3.5 incorporates OpenSSL 0.9.8i Copyright (c) 1998-2008 The OpenSSL Project Copy-right (c) 1995-1998 Eric A. Young, Tim J. Hudson All rights reserved. Such Technology is subject to the following terms and conditions: 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

    xi

  • Management Programmers Guide

    OpenSSL please contact [email protected]. OpenSSL License - Copyright (c) 1998-2008 The OpenSSL Project. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted pro vided that the following conditions are met: 1. Redistributions of source code must retain the above copy right notice, this list of conditions and the following disclaimer. 2. Redistri-butions 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. (http://www.openssl.org/)" 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 [email protected]. 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 prod-uct includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)" 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 DIS-CLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAM AGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERV ICES; 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 cryp tographic software written by Eric Young ([email protected]). This product includes software written by Tim Hudson ([email protected]). - Original SSLeay License - Copyright (C) 1995-1998 Eric Young (eay@crypt soft.com) All rights reserved. This package is an SSL implementation written by Eric Young (eay@crypt soft.com). The implementation was written so as to conform with Net-scapes SSL. This library is free for commercial and non-commer cial 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 ([email protected]). Copy right 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) pro-vided with the package. Redistri bution and use in source and binary forms, with or with out modification, are permitted provided that the follow ing 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 con ditions and the following dis claimer in the docu-mentation and/or other materials provided with the distribution. 3. All advertising materials mention ing features or use of this software must display the following acknowledge ment: "This product includes crypto graphic software written by Eric Young ([email protected])" The word 'cryptographic' can be left out if the rou tines from the library being used are not crypto graphic related :-). 4. If you include any Win-dows specific code (or a deriv ative thereof) from the apps directory (application code) you must include an acknowledgement: "This product includes software written by Tim Hudson ([email protected])" THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND ANY EXPRESS OR IMPLIED WAR-RANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF

    xii

  • MERCHANT ABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCURE MENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THE-ORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEG-LIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSI BILITY OF SUCH DAMAGE. The licence and distribution terms for any publically available version or deriva tive 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.]

    Progress Orbix v6.3.5 incorporates PCRE v7.8 from the PCRE Project. Such Technology is subject to the following terms and conditions: PCRE LICENCE ------------PCRE is a library of functions to support regular expressions whose syntax and semantics are as close as possible to those of the Perl 5 language. Release 7 of PCRE is distributed under the terms of the "BSD"licence, as specified below. The documentation for PCRE, supplied in the "doc" directory, is distrib-uted under the same terms as the software itself. The basic library functions are written in C and are free-standing. Also included in the distribution is a set of C++ wrapper functions. THE BASIC LIBRARY FUNCTIONS---------------------------Written by: Philip HazelEmail local part: ph10Email domain: cam.ac.ukUniversity of Cambridge Computing Service,Cambridge, England.Copyright (c) 1997-2008 University of CambridgeAll rights reserved.THE C++ WRAPPER FUNCTIONS-------------------------Contributed by: Google Inc.Copyright (c) 2007-2008, Google Inc.All rights reserved.THE "BSD" LICENCE-----------------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 University of Cambridge nor the name of

    xiii

  • Management Programmers Guide

    Google Inc. nor the names of their contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFT WARE IS PRO VIDED BY THE COP-YRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRAN-TIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRAN TIES OF MERCHANT ABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDI RECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUD-ING, BUT NOT LIMITED TO, PROCURE MENT 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.

    Progress Orbix v6.3.5 incorporates IDL Compiler Front End 1 from Sun Microsystems, Inc. Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United States of America. All Rights Reserved. Such tech nology is subject to the following terms and conditions: This product is protected by copyright and distrib uted under the following license restricting its use. The Interface Definition Language Compiler Front End (CFE) is made available for your use provided that you include this license and copyright notice on all media and documentation and the software program in which this product is incorporated in whole or part. You may copy and extend functionality (but may not remove functionality) of the Interface Definition Language CFE without charge, but you are not authorized to license or distribute it to anyone else except as part of a product or program developed by you or with the express written consent of Sun Microsystems, Inc. ("Sun"). The names of Sun Microsystems, Inc. and any of its subsidiaries or affiliates may not be used in advertising or publicity per taining to distribution of Interface Definition Language CFE as permitted herein. This license is effective until termi nated by Sun for failure to comply with this license. Upon ter-mination, you shall destroy or return all code and documentation for the Interface Definition Language CFE. INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF DEAL-ING, USAGE OR TRADE PRACTICE. INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES TO ASSIST IN ITS USE, CORREC TION, MODIFICATION OR ENHANCEMENT. SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIA-BILITY WITH RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF. IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSE QUENTIAL DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Use, duplication, or disclosure by the government is subject to restrictions as set forth in subpara graph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR 52.227-19. Sun, Sun Microsystems and the Sun logo are trademarks or registered trademarks of Sun Microsys tems, Inc. Sun-Soft, Inc. 2550 Garcia Avenue, Mountain View, California 94043 NOTE: SunOS, Sun Soft, Sun, Solaris, Sun Microsystems or the Sun logo are trademarks or registered trademarks of Sun Micro systems, Inc.

    Progress Orbix v6.3.5 incorporates LibXML2 2.4.24 from Daniel Veillard. Such Technology is subject to the following terms and conditions: Except where otherwise noted in the source code (trio files, hash.c and

    xiv

  • list.c) covered by a similar license but with different Copyright notices: Copyright (C) 1998-2002 Daniel Veillard. All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restric-tion, including with out limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Soft ware, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all cop-ies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WAR-RANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTA BILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONIN-FRINGEMENT. IN NO EVENT SHALL THE DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIA BILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTH-ERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of Daniel Veillard shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software with-out prior written authorization from him. === trio.c, trio.h: Copyright (C) 1998 Bjorn Reese and Daniel Stenberg. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THIS SOFTWARE IS PROVIDED "AS IS" AND WITH OUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITA-TION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND CONTRIB UTORS ACCEPT NO RESPONSIBILITY IN ANY CON-CEIVABLE MANNER. ==== triop.h: Copyright (C) 2000 Bjorn Reese and Daniel Stenberg. Permission to use, copy, modify, and dis tribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all cop-ies. THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WAR-RANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTIC ULAR PURPOSE. THE AUTHORS AND CON-TRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. ==== hash.c: Copyright (C) 2000 Bjorn Reese and Daniel Veillard. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above cop-yright notice and this permis sion notice appear in all copies. THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITA-TION, THE IMPLIED WARRANTIES OF MERCHAN TIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CON-CEIVABLE MANNER. ===== list.c: Copyright (C) 2000 Gary Pennington and Daniel Veillard. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, pro-vided that the above copyright notice and this permission notice appear in all copies. THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND CONTRIBUTORS ACCEPT NO RESPONSI-BILITY IN ANY CONCEIVABLE MANNER. === triodef.h, trionan.c, trionan.h: Copyright (C) 2001 Bjorn Reese Permission to use, copy, modify, and distrib-ute this soft ware for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permis sion notice appear in all copies. THIS SOFTWARE IS PROVIDED ``AS IS'' AND

    xv

  • Management Programmers Guide

    WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MER CHANTIBILITY AND FITNESS FOR A PARTICULAR PUR-POSE. THE AUTHORS AND CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIV-ABLE MANNER. ==== triostr.c, triostr.h: Copyright (C) 2001 Bjorn Reese and Daniel Stenberg. Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, pro vided that the above copyright notice and this permission notice appear in all copies. THIS SOFTWARE IS PRO VIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PUR POSE. THE AUTHORS AND CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER.

    Progress Orbix v6.3.5 incorporates ICU library 2.6 from IBM. Such Technology is subject to the following terms and conditions: Copyright (c) 1995-2009 International Business Machines Corporation and others. All rights reserved. Per mission is hereby granted, free of charge, to any person obtaining a copy of this soft-ware and associated documenta tion files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Software, and to permit persons to whom the Soft ware is fur nished to do so, provided that the above copyright notice(s) and this permission notice appear in all copies of the Software and that both the above copyright notice(s) and this permission notice appear in supporting documentation. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICU LAR PUR POSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDI RECT OR CONSEQUENTIAL DAMAGES, OR ANY DAM-AGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TOR TIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. Except as contained in this notice, the name of a copyright holder shall not be used in advertising or other wise to promote the sale, use or other dealings in this Software without prior written authorization of the copyright holder. All trade-marks and registered trademarks mentioned herein are the property of their respective owners.

    Updated: 13-Jul-2011

    xvi

  • Contents

    List of Figures xix

    Preface xxi

    Part I Overview

    Chapter 1 Introduction to Application Management 1Introduction to Orbix Management Tools 2Introduction to Java Management Extensions 5Introduction to the Orbix Management API 8Overview of Management Programming Tasks 10

    Part II CORBA Java Management

    Chapter 2 Instrumenting CORBA Java Applications 15Step 1Identifying Tasks to be Managed 16Step 2Defining your MBeans 19Step 3Implementing your MBeans 24Step 4Gaining Access to an MBean Server 28Step 5Registering your MBeans 31Step 6Unregistering your MBeans 34Step 7Connecting MBeans Together 35Monitoring MBean Statistics 37

    Chapter 3 Displaying CORBA Java Applications 41Displaying MBeans 42Adding Application MBeans to the Tree 44Customizing your Application MBean Icons 46

    xvii

  • CONTENTS

    Part III CORBA C++ Management

    Chapter 4 Instrumenting CORBA C++ Applications 51Step 1Identifying Tasks to be Managed 52Step 2Defining your MBeans 56Step 3Implementing your MBeans 62Step 4Initializing the Management Plugin 76Step 5Creating your MBeans 78Step 6Connecting MBeans Together 80Monitoring MBean Statistics 84

    Appendix I MBean Document Type Definition 87The MBean Document Type Definition File 88

    Glossary 91

    Index 97

    xviii

  • List of Figures

    Figure 1: IONA Administrator Web Console 3Figure 2: JMX Management and Orbix 6Figure 3: Example ParentChild Relationship 9Figure 4: Bank Teller Application 17Figure 5: Bank Example in IONA Administrator 18Figure 6: Bank Application Overview 26Figure 7: Account Manager Example 42Figure 8: Bank Process MBean 43Figure 9: Instrumented Plugin in IONA Administrator 53Figure 10: Instrumented Plugin Application Overview 55Figure 11: Instrumented Plugin Custom Exception 71Figure 12: Instrumented Plugin Process MBean 80Figure 13: Instrumented Plugin Child MBean 83

    xix

  • LIST OF FIGURES

    xx

  • PrefaceOrbix provides support for enterprise-level management across different platform and programming language environments. Orbix management tools enable administrators to manage distributed enterprise applications. This guide explains how programmers can enable applications to be managed by Orbix management tools (for example, IONA Administrator).

    Audience This guide is aimed at developers writing distributed enterprise applications who wish to enable their applications for management by Orbix management tools. It assumes knowledge of either C++ or Java.

    Organization of this guide This guide is divided as follows:

    Part I, OverviewThis introduces Orbix enterprise management, and the tools used to manage distributed applications.

    Part II, Java ManagementThis explains how to enable CORBA Java applications for management, and display them in IONA Administrator.

    Part III, C++ ManagementThis explains how to enable CORBA C++ applications for management, and display them in IONA Administrator

    xxi

  • PREFACE

    Related documentation The document set for Orbix includes the following related documentation:

    Management Users Guide Administrators Guide CORBA Programmers Guide, C++ Edition CORBA Programmers Guide, Java EditionThe latest updates to the Orbix documentation can be found at

    http://www.iona.com/docs.

    Additional resources The IONA knowledge base (http://www.iona.com/support/knowledge_base/index.xml) contains helpful articles, written by IONA experts, about IONA Administrator and other products.

    The IONA update center (http://www.iona.com/support/updates/index.xml) contains the latest releases and patches for IONA products:

    If you need help with this or any other IONA products, contact IONA at [email protected]. Comments on IONA documentation can be sent to [email protected].

    Typographical conventions This guide uses the following typographical conventions:

    Constant width Constant width (courier font) in normal text represents portions of code and literal names of items such as classes, functions, variables, and data structures. For example, text might refer to the CORBA::Object class.

    Constant width paragraphs represent code examples or information a system displays on the screen. For example:#include

    xxii

    http://www.iona.com/support/knowledge_base/index.xmlhttp://www.iona.com/support/updates/index.xmlhttp://

  • PREFACE

    Keying conventions This guide may use the following keying conventions:

    Italic Italic words in normal text represent emphasis and new terms.

    Italic words or characters in code and commands represent variable values you must supply, such as arguments to commands or path names for your particular system. For example:% cd /users/your_nameNote: Some command examples may use angle brackets to represent variable values you must supply. This is an older convention that is replaced with italic words or characters.

    No prompt When a commands format is the same for multiple platforms, a prompt is not used.

    % A percent sign represents the UNIX command shell prompt for a command that does not require root privileges.

    # A number sign represents the UNIX command shell prompt for a command that requires root privileges.

    > The notation > represents the DOS, Windows NT, Windows 95, or Windows 98 command prompt.

    ...

    .

    .

    .

    Horizontal or vertical ellipses in format and syntax descriptions indicate that material has been eliminated to simplify a discussion.

    [ ] Brackets enclose optional items in format and syntax descriptions.

    { } Braces enclose a list from which you must choose an item in format and syntax descriptions.

    | A vertical bar separates items in a list of choices enclosed in { } (braces) in format and syntax descriptions.

    xxiii

  • PREFACE

    xxiv

  • Part IOverview

    In this part This part contains the following chapter:

    Introduction to Application Management page 1

  • CHAPTER 1

    Introduction to Application ManagementThis chapter gives an overview of Orbix enterprise application management. It introduces the Orbix management tools, Suns Java Management Extensions API, and IONAs management API.

    In this chapter This chapter contains the following sections:

    Introduction to Orbix Management Tools page 2

    Introduction to Java Management Extensions page 5

    Introduction to the Orbix Management API page 8

    Overview of Management Programming Tasks page 10

    1

  • CHAPTER 1 | Introduction to Application Management

    Introduction to Orbix Management Tools

    Overview Orbix management tools enable administrators to monitor and control distributed applications at runtime. These tools provide seamless management of IONA products, or any applications developed using those products, across different platform and programming language environments. Orbix management tools include the following main components:

    IONA Administrator Web Console. Orbix Management Service. IONA Configuration Explorer. Orbix Configuration Authority.

    IONA Administrator Web Console

    The IONA Administrator Web Console provides a web browser interface to the Orbix management tools. It enables you to manage applications and application events from anywhere, without the need for download or installation. It communicates with the management service using HTTP (Hypertext Transfer Protocol), as illustrated in Figure 1.

    Orbix Management Service The Orbix management service is the central point of contact for accessing management information in a domain. A domain is an abstract group of managed server processes within a physical location. The management service is accessed by both the IONA Administrator Web Console and by the IONA Configuration Explorer.

    Note: Managed applications can be written in C++ or Java. The same management service process (iona_services.management) can be used by Java and C++ applications.

    2

  • Introduction to Orbix Management Tools

    IONA Configuration Explorer The IONA Configuration Explorer is a Java graphical user interface (GUI) that enables you to manage your configuration settings. It communicates with your configuration repository (CFR) or configuration file using IIOP (Internet Inter-ORB Protocol).

    Figure 1 shows the IONA Administrator Web Console, and how it interacts with managed applications to provide management capability.

    Figure 1: IONA Administrator Web Console

    IONAAdministratorWeb Console

    HTTP

    texttext

    ManagedApplication

    Orbix Domain

    ...

    Management Service

    3

  • CHAPTER 1 | Introduction to Application Management

    Orbix Configuration Authority The Orbix Configuration Authority provides a web browser interface to descriptive information about all Orbix configuration settings. You can browse and search for information about Orbix configuration variables in your CFR or configuration file.

    Integrating with Enterprise Management Systems

    Performance logging plugins enable Orbix to integrate effectively with Enterprise Management Systems (EMS), such as IBM Tivoli, HP OpenView, CA Unicenter, or BMC Patrol.

    These systems enable system administrators and production operators to monitor enterprise-critical applications from a single management console. This enables them to quickly recognize the root cause of problems that may occur, and take remedial action.

    Further information For detailed information on using the Orbix management tools, and on how to configure EMS integration, see the Management Users Guide.

    4

  • Introduction to Java Management Extensions

    Introduction to Java Management Extensions

    Overview Java Management Extensions (JMX) is a standards-based API from Sun that provides a framework for adding enterprise management capabilities to user applications. This section explains the main JMX concepts and shows how JMX and Orbix interact to provide enterprise management for Java applications. This section includes the following:

    MBeans. The MBean server. Management instrumentation. Standard and Dynamic MBeans. Further information.

    MBeans The concept of an MBean (a managed bean) is central to JMX. An MBean is simply an object with associated attributes and operations. It acts as a handle to your application object, and enables the object to be managed.

    For example, a Car MBean object, with an associated speed attribute, and start() and stop() operations, is used to represent a car application object, with corresponding attributes and operations. Application developers can express their application objects as a series of related MBeans. This enables administrators to manage these application objects using an administration console (for example, IONA Administrator).

    The MBean server All the MBeans created by developers are managed and controlled by a MBean server, which is provided by JMX. All MBeans that are created must be registered with an MBean server so that they can be accessed by management applications, such as Orbix.

    Figure 2 shows a Java example of the JMX components at work. It shows how these components interact with Orbix to provide management capability for your application.

    5

  • CHAPTER 1 | Introduction to Application Management

    For simplicity, this diagram only shows one MBean. An application might have multiple MBeans representing the application objects that you wish to manage. In addition, new instrumentation code is not solely confined to the MBean. You will need to add some new code to your sever implementation (for example, to enable your server to contact the management service).

    Figure 2: JMX Management and Orbix

    text

    Orbix domain

    HTTP

    IIOP

    IONA Administrator Web Console

    MBean Server

    MBean

    JVM

    KEY

    Supplied Orbix component

    ComponentColour

    Existing server application

    Supplied JMX component

    New instrumentation code

    Java Server

    Management Service

    IIOP Adaptor

    6

  • Introduction to Java Management Extensions

    Management instrumentation Adding JMX management code to your application is also known as adding management instrumentation or instrumenting your existing application. These standard management terms are used throughout this book.

    Figure 2 shows the new management instrumentation code as an MBean. MBeans must be added to your application to enable it for management.

    Standard and Dynamic MBeans The MBeans discussed so far in this chapter are referred to as standard MBeans. These are ideally suited to straightforward management scenarios where the structure of managed data is well defined and unlikely to change often. JMX specifies another category of MBeans called dynamic MBeans. These are designed for when the structure of the managed data is likely to change regularly during the lifetime of the application.

    Implementing dynamic MBeans is more complex than for standard MBeans. If your management solution needs to provide integration with existing and future management protocols and platforms, using dynamic MBeans could make it more difficult to achieve this goal. The examples cited in this book use standard MBeans only.

    Further information For more information about JMX, see Suns JMX Instrumentation and Agent Specification, and Reference Implementation Javadoc. These documents are available online at:http://java.sun.com/products/JavaManagement/

    For information on how to integrate IONA Administrator with other general purpose management applications (for example, HP OpenviewTM or CA UniCenterTM), see the "SNMP Integration" chapter in the Management Users Guide.

    7

    http://java.sun.com/products/JavaManagement/

  • CHAPTER 1 | Introduction to Application Management

    Introduction to the Orbix Management API

    Overview JMX does not specify how to remotely access MBeans using network protocols. IONAs Orbix management API is used to enable remote communications for MBeans. This API also enables you to specify relationships between MBeans, and display MBeans in IONA Administrator. This section includes the following:

    The IIOP adaptor. Defining MBean relationships. C++ Instrumentation.

    The IIOP adaptor The Orbix management API enables network communication between the MBean server and the management service over IIOP (Internet Inter-ORB Protocol). This is performed using an IIOP adapter, which is contained in the ORB plugin.

    Figure 2 shows an example of this IIOP communication. This cross-platform API also enables communication for CORBA Java and C++ servers.

    Defining MBean relationships The Orbix management API also enables you to specify hierarchical parentchild relationships between MBeans. For example, you may want to show relationships between your server and its lower-level processes. These relationships can then be displayed in the IONA Administrator Web Console.

    Figure 3 shows example parentchild relationships displayed in the left pane of the IONA Administrator Web Console.

    8

  • Introduction to the Orbix Management API

    C++ Instrumentation The concept of an MBean is Java term that comes from JMX. The C++ version of the Orbix management API uses the generic concept of a Managed Entity instead of an MBean. A C++ Managed Entity is functionally similar to the Java MBean. It acts as a handle to your application object, and enables the object to be managed.

    The C++ version of the Orbix management API is defined in IDL (Interface Definition Language).

    For more details of the Orbix management API, see the Orbix Management IDLdoc, and the Orbix Management Javadoc.

    Figure 3: Example ParentChild Relationship

    9

  • CHAPTER 1 | Introduction to Application Management

    Overview of Management Programming Tasks

    Overview This section gives an overview of the typical management programming tasks. These include the following:

    Identifying tasks to be managed. Writing your MBeans. Registering your MBeans with the MBean server. Unregistering your MBeans. Defining relationships between MBeans.These tasks are explained in more detail in the rest of this document.

    Identifying tasks to be managed Before adding any management code to an application, you must decide on the application tasks that you wish the administrator to manage.

    Deciding which tasks should be managed varies from application to application. This depends on the nature of the application, and on the type of runtime administration that is required. Typical managed tasks include monitoring the status of an application (for example, whether it is active or inactive), and controlling its operation (for example, starting or stopping the application).

    Writing your MBeans When you have decided which parts of your application need to be managed, you can define and implement MBeans to satisfy your management objectives. Each MBean object must implement an interface ending with the term MBean (for example, CarMBean).

    To expose its attributes, an MBean interface must declare a number of get and set operations. If get operations are declared only, the MBean attributes are read-only. If set operations are declared, the MBean attributes are writable.

    10

  • Overview of Management Programming Tasks

    Registering your MBeans with the MBean server

    Registering application MBeans with the MBean server enables them to be monitored and controlled by the IONA Administrator. Choosing when to register or expose your MBeans varies from application to application. However, there are two stages when all applications create and register MBeans:

    During application initialization. During any application initialization sequence, a set of objects is created that represents the core functionality of the application. After these objects are created, MBeans should also be created and registered, to enable basic management of that application.

    During normal application runtime. During normal application runtime, new objects are created as a result of internal or external events (for example, an internal timer, or a request from a client). When new objects are created, corresponding MBeans can be created and registered, to enable management of these new application components. For example, in a bank example when a new account is created, a new account MBean would be also be created and registered with the MBean server.

    Unregistering your MBeans You might wish to unregister an MBean in response to an administrators interaction with the system. For example, if a bank teller session is closed, it would be appropriate to unregister a corresponding session MBean. This ensures that the MBean will no longer be displayed as part of the application that is being managed.

    Defining relationships between MBeans

    You can use the Orbix management API to define parentchild relationships between MBeans. These relationships are then displayed in the IONA Administrator Web Console, as shown in Figure 3 on page 9.

    Parent-child relationships are no longer displayed in the console when the MBean is unregistered by the application (for example, if a bank account is closed).

    11

  • CHAPTER 1 | Introduction to Application Management

    Further information All of these management programming tasks are explained in detail, with examples, in the parts that follow:

    Part II CORBA Java management. Part III CORBA C++ management.It is not necessary to read one part before another. You can read these parts in any order.

    12

  • Part IICORBA Java Management

    In this part This part contains the following chapters:

    Instrumenting CORBA Java Applications page 15

    Displaying CORBA Java Applications page 41

  • CHAPTER 2

    Instrumenting CORBA Java ApplicationsThis chapter explains how to use the Java Management Extensions API and the Orbix Java Management API to enable an existing CORBA Java application for management. It uses a banking example application.

    In this chapter This chapter contains the following sections:

    Step 1Identifying Tasks to be Managed page 16

    Step 2Defining your MBeans page 19

    Step 3Implementing your MBeans page 24

    Step 4Gaining Access to an MBean Server page 28

    Step 5Registering your MBeans page 31

    Step 6Unregistering your MBeans page 34

    Step 7Connecting MBeans Together page 35

    Monitoring MBean Statistics page 37

    15

  • CHAPTER 2 | Instrumenting CORBA Java Applications

    Step 1Identifying Tasks to be Managed

    Overview Before adding management code to an application, you must decide on the tasks in your application that you wish to be managed by a system administrator. Only then should you start thinking about adding management instrumentation code to your existing application.

    This section includes the following:

    Existing user tasks. New management tasks for administrators. Planning your Programming Steps.

    Existing user tasks The First Northern Bank (FNB) example used in this chapter adds management capabilities to an existing CORBA Java banking application. This example application delivers standard banking services to customers.

    The existing FNB application enables bank tellers to do the following:

    Log on and log off the system. Create a customer account. Lodge money into an account. Withdraw money from an account.Figure 4 shows the user interface to these existing features.

    16

  • Step 1Identifying Tasks to be Managed

    New management tasks for administrators

    The new management instrumentation code added to FNB application enables administrators to do the following:

    Monitor the back-tier server. Monitor customer accounts. Unload account objects from memory. Monitor the middle-tier server. Monitor teller sessions. Monitor bank tellers.Administrators can perform these tasks using the IONA Administrator Web Console, shown in Figure 5.

    Figure 4: Bank Teller Application

    17

  • CHAPTER 2 | Instrumenting CORBA Java Applications

    Planning your Programming Steps

    When you have identified your management tasks, you should think carefully about how exactly you wish to add the new management code to your existing application. For example, how much of the new code you will add to your existing classes, and how much will be in new classes. Depending on the size of your application, you might wish to keep new instrumentation classes in a separate directory.

    This chapter shows how JMX management code was added to the FNB CORBA Java application. It shows the standard programming steps. For example, defining and implementing MBeans, and registering and unregistering your MBeans with the MBean server.

    Figure 5: Bank Example in IONA Administrator

    Note: When instrumenting CORBA Java servers, you do not need to make any changes to the CORBA IDL. You can enable your application for management simply by adding new MBean instrumentation code to your CORBA Java implementation.

    18

  • Step 2Defining your MBeans

    Step 2Defining your MBeans

    Overview When you have planned which parts of your application need to be managed, you can then define MBeans to satisfy your management objectives. This section shows how to define example MBean interfaces for the FNB application. It includes the following:

    Rules for MBean interfaces. Example MBeans. AccountMgrMBean interface. CreditCardMBean interface. BusinessSessionManagerMBean interface. BusinessSessionMBean interface. MBean object names. Further information.

    Rules for MBean interfaces Each MBean object must implement an interface ending with the term MBean (for example, BusinessSessionMBean).

    To expose its attributes, an MBean interface must declare a number of get() and set() operations. If only get() operations are declared, the MBean attributes are read-only. If set() operations are declared, the MBean attributes are writable.

    To expose management operations, you must declare an appropriate method in the MBean interface, and then implement it in the corresponding MBean class.

    19

  • CHAPTER 2 | Instrumenting CORBA Java Applications

    Example MBeans Table 1 lists the example MBeans that are declared for the FNB application.

    Table 1: FNB MBeans

    MBean Functionality

    AccountMgrMBean This back-tier MBean represents the bank account information managed by an administrator. For example, the number and type of accounts in the bank.

    CreditCardMBean This back-tier MBean represents credit card accounts.

    BusinessSessionManagerMBean This middle-tier MBean represents the number of open bank teller sessions in the bank,

    BusinessSessionMBean This middle-tier MBean represents the list of recent transactions for a particular bank teller session.

    20

  • Step 2Defining your MBeans

    AccountMgrMBean interface The interface for the AccountMgrMBean is defined as follows:

    CreditCardMBean interface The interface for the CreditCardMBean is defined as follows:

    package bankobjects.management;

    import javax.management.*;import com.iona.management.jmx_iiop.*;import com.iona.management.jmx_iiop.Public.*;

    public interface AccountMgrMBean {

    // attributes public int getNumberOfAccounts(); public int getNumberOfCreditCards(); public int getNumberOfCurrentAccounts(); public int getNumberOfLoadedAccounts(); public ObjectName[] getActiveCreditCards();

    // operations public boolean unloadAccount (int accountNum);}

    package bankobjects.management;

    import javax.management.*;import com.iona.management.jmx_iiop.*;import com.iona.management.jmx_iiop.Public.*;

    public interface CreditCardMBean {

    public int simpleOp ();

    }

    21

  • CHAPTER 2 | Instrumenting CORBA Java Applications

    BusinessSessionManagerMBean interface

    The interface for the BusinessSessionManagerMBean is defined as follows:

    BusinessSessionMBean interface The interface for the BusinessSessionMBean is defined as follows:

    MBean object names MBean object names are used to uniquely identify an MBean. Object names are represented by the javax.management.ObjectName class, which extends the java.lang.Object class.

    In the FNB example, the AccountMgrMBean interface declares the following get() method for the ActiveCreditCards attribute:public ObjectName[] getActiveCreditCards();

    This returns an array of MBean object names for the associated credit card accounts. The getActiveCreditCards() method is an example of using an object name to connect MBeans together.

    package fnbba.management;

    import javax.management.*;import com.iona.management.jmx_iiop.*;import com.iona.management.jmx_iiop.Public.*;

    public interface BusinessSessionManagerMBean {

    public int getNumberOfOpenSessions ();

    }

    package fnbba.management;

    import javax.management.*;import com.iona.management.jmx_iiop.*;import com.iona.management.jmx_iiop.Public.*;

    public interface BusinessSessionMBean {

    public String[] getRecentTransactionList();

    }

    22

  • Step 2Defining your MBeans

    Further information For information about how to specify MBean object names, see Step 3Implementing your MBeans on page 24.

    For detailed information about the ObjectName class, see Suns JMX Reference Implementation Javadoc. This is available along with the source code from:http://java.sun.com/products/JavaManagement

    23

    http://java.sun.com/products/JavaManagement

  • CHAPTER 2 | Instrumenting CORBA Java Applications

    Step 3Implementing your MBeans

    Overview After defining your MBean interfaces, you must provide an MBean implementation. MBean implementation objects typically interact with the application they are designed to manage, enabling monitoring and control.

    For example, this section shows interaction between an MBean (BusinessSessionManager) and the CORBA server implementation object (BusinessSessionManagerDelegate). The MBeans getNumberOfOpenSessions() method calls the implementation objects openSessions() method. This section includes the following:

    Example MBean implementation. The management wrapper class. Management wrapper implementation. Identifying MBeans. Further information.

    Example MBean implementation The following code example shows the BusinessSessionManager implementation for the BusinessSessionManagerMBean:

    package fnbba.management;

    import javax.management.*;import com.iona.management.jmx_iiop.*;import com.iona.management.jmx_iiop.Public.*;

    public class BusinessSessionManager implements BusinessSessionManagerMBean {

    private ManagementWrapper mgmtWrapper = null; private ObjectName myName = null; private fnbba.BusinessSessionManagerDelegate myImpl = null;

    24

  • Step 3Implementing your MBeans

    The management wrapper class In this example, the MBean representing the bank teller BusinessSessionManager uses an underlying class (the ManagementWrapper class) to perform most of the work. The ManagementWrapper object creates the BusinessSessionMBeans for each bank teller session. It registers these beans with the MBean server, and then adds them to the IONA Administrator Web Console display. A simplified overview is shown in Figure 6.

    This is a typical MBean implementation, where the MBean uses the functionality of other application objects (in this case, the management wrapper) to provide the management capability. The management wrapper performs the core management tasks (for example, gaining access to the MBean server, and registering the MBean with the MBean server).

    public BusinessSessionManager (fnbba.BusinessSessionManagerDelegate myImpl){

    this.myImpl = myImpl;

    try { myName = new ObjectName("FNBMiddleTier:name=BusinessSessionManager"); } catch (Exception j) {}

    mgmtWrapper = ManagementWrapper.instance ("FNBMiddleTier:name=FNBMiddleTier");

    mgmtWrapper.addMBean(this, myName); } public int getNumberOfOpenSessions() { return myImpl.openSessions(); }

    public void remove () { mgmtWrapper.removeMBean (myName);} }

    25

  • CHAPTER 2 | Instrumenting CORBA Java Applications

    Figure 6: Bank Application Overview

    MgmtWrapperTellers

    MBeanBob

    MBean Server

    MBeanSue

    FNB Business ArchitectureSession Mngr

    FNB Java Application

    TellerSession

    Bob

    IONA Administrator

    TellerSession

    Sue

    26

  • Step 3Implementing your MBeans

    Management wrapper implementation

    The ManagementWrapper.instance() method that creates the MBean is defined as a static class method. This is because only one wrapper is required by each domain displayed by IONA Administrator. For example, Figure 5 on page 18 show