Taming Jaguar
Michael J. Barlotta and Jason R. Weiss
  • July 2000
  • ISBN 9781930110038
  • 362 pages
  • printed in black & white
This title is out of print and no longer for sale.

If you are looking to adopt Jaguar in your enterprise, look no further. Taming Jaguar shows you how to solve the real-world problems of installing, trouble-shooting, designing, developing, and maintaining a Jaguar application. Topical chapters are organized in a Q & A format making it easy for you to quickly find the solution to your problem. They also provide foundational and background information as well as detailed technical how-tos.

Although designed so you can find your problems easily, this book is meant to be read cover-to-cover with each chapter discussing its topic exhaustively.

Taming Jaguar is part of the PowerBuilder Developer's series, which includes Distributed Application Development with PowerBuilder 6 and Jaguar Development with PowerBuilder 7.

Table of Contents detailed table of contents

preface

acknowledgments

contacting the authors

1. Becoming a Jaguar tamer

1.1. What should be done after installing Jaguar CTS?

1.2. What is a logical server?

1.3. What is in the serverstart.bat file?

1.4. How are packages moved from one Jaguar server to another?

1.5. How are packages imported and exported between Jaguar servers?

1.6. How can a Jaguar server be backed up?

1.7. What is a cluster?

1.8. How do I create a cluster?

1.9. What is synchronization?

1.9.1. Package synchronization

1.9.2. Component synchronization

1.9.3. Servlet synchronization

1.9.4. All Cluster Files synchronization

1.9.5. Remaining cluster options

1.10. What does rebinding a cluster do?

1.11. What are the cluster startup options?

1.12. What are the Admin and Ready modes?

1.13. Can synchronization be done outside a cluster?

1.14. How is a server added to a cluster?

1.15. How is a server removed from a cluster?

1.16. How is a cluster deleted?

1.17. What is load balancing?

1.18. How does Jaguar handle load balancing?

1.19. How is load balancing configured on Jaguar?

1.19.1. Random and round-robin

1.19.2. Weighted

1.19.3. Adaptive

1.19.4. Setting the load balancing policy

1.20. What is partitioning and how does it affect load balancing?

1.21. How can a Jaguar application be made highly available?

1.22. How do name servers detect when a Jaguar server goes down?

1.23. How do client applications access Jaguar for high availability?

1.24. How is automatic failover handled by Jaguar?

1.25. How is a cluster monitored?

1.26. How can I have more than one Jaguar server installed on a single machine?

1.27. What is a database sanity check?

1.28. What is JagRepair?

2. Designing components for the jungle

2.1. What is the Jungle Safari Shipping Company?

2.2. What are the different Jaguar component types?

2.3. What’s on a Component Properties Instances tab page?

2.4. What is the difference between stateful and stateless?

2.5. Is my component stateful or stateless?

2.6. How do I build a stateful component?

2.7. How do I build a stateless component?

2.7.1. The client caching design

2.7.2. The database caching design

2.7.3. The flat-file caching design

2.7.4. Shared component caching design

2.8. What is the Memento design pattern?

3. Are these magic beans?

3.1. What is EJB?

3.1.1. What is Java RMI?

3.1.2. What is JTA?

3.1.3. What is JNDI?

3.1.4. What is CORBA?

3.1.5. How do Java RMI, CORBA, and EJB come together?

3.2. What is an EJB component?

3.3. What is an Entity Bean?

3.4. How do I build an Entity Bean in PowerJ?

3.5. What is a Session Bean?

3.5.1. Stateful Session Beans

3.5.2. Stateless Session Beans

3.6. How do I build a Session Bean in PowerJ?

3.7. What are EJB transactions?

3.8. How does a client access an EJB?

3.9. How does a PowerJ client access an EJB component on Jaguar CTS?

3.10. How can I access an EJB component from PowerBuilder or a CORBA client?

4. Servicing the jungle

4.1. What is a service component?

4.2. What does the service component interface look like?

4.3. What are the start() method’s responsibilities?

4.4. What are the run() method’s responsibilities?

4.5. What are the stop() method’s responsibilities?

4.6. How should I define a service component’s properties?

4.7. How do I configure a Jaguar service?

4.8. How can I dictate the number of threads Jaguar should run on my service?

4.9. Why are services better implemented by Java, instead of PowerBuilder?

4.10. How do I control the execution frequency of a service component?

4.11. How can I communicate with a service component from a client connection?

4.12. How do I write a Java service component?

4.13. How do I write a PowerBuilder service component?

4.14. How do I add custom properties to a component?

4.15. How do I implement a shared component in Java?

5. Factory objects

5.1. What is the difference between interface and implementation?

5.2. How do I code to an interface instead of an implementation?

5.3. How do I specify an IDL interface?

5.4. What are the JaguarORB and CORBAObjects in PowerBuilder?

5.5. What is an ORB Factory?

5.6. How do I use an ORB factory inside PowerBuilder client?

5.7. What is the PowerJ InitialContext object?

5.8. How do I import Jaguar stubs into PowerJ?

5.9. How do I use the CORBA ORB factory inside of a PowerJ client?

6. Peering into the Jaguar interface repository

6.1. What is the interface repository?

6.2. What is the Jaguar repository?

6.3. What is the general structure of the Jaguar repository?

6.3.1. %JAGUAR%/Repository

6.3.2. %JAGUAR%/Repository/Cluster

6.3.3. %JAGUAR%/Repository/Component

6.3.4. %JAGUAR%/Repository/ConnCache

6.3.5. %JAGUAR%/Repository/IDL

6.3.6. %JAGUAR%/Repository/Listener

6.3.7. %JAGUAR%/Repository/Package

6.3.8. %JAGUAR%/Repository/Security

6.3.9. %JAGUAR%/Repository/Server

6.3.10. %JAGUAR%/Repository/Servlet

6.4. How do I use the Jaguar::Repository interface?

6.4.1. Generating the 'Jaguar' Package Proxies

6.5. How can I read the properties on an entity?

6.6. How can I use the keyword context service to read properties?

6.7. How can I create or modify the properties on an entity?

6.8. How can I look up all the entities installed on Jaguar?

6.9. How can I look up the interfaces a component implements?

6.10. What are the Jaguar management components?

6.11. How can I use Jaguar environment variables?

6.12. How do I access Jaguar environment variables?

6.13. How can a component determine the name of the server it is running in?

6.14. What server properties can be monitored remotely?

6.14.1. Component statistics

6.14.2. Connection cache statistics

6.14.3. HTTP/HTTPS network statistics

6.14.4. IIOP/IIOPS/TDS/TDSS Network Statistics

6.14.5. Request statistics

6.14.6. Session statistics

6.14.7. Cumulative statistics

6.15. How should I initialize my component, .ini files, or component properties?

6.16. How do I use CtsSecurity::AuthService for my own authentication service?

7. Jaguar naming services

7.1. What are the Jaguar naming services?

7.2. How do I initialize my ORB to use naming services?

7.2.1. ORBNameServiceURL

7.2.2. ORBHttp

7.2.3. ORBLogIIOP

7.2.4. ORBLogFile

7.2.5. ORBCodeSet

7.2.6. ORBRetryCount

7.2.7. ORBRetryDelay

7.2.8. ORBProxyHost

7.2.9. ORBProxyPort

7.2.10. SocketReuseLimit

7.2.11. ORBClass

7.2.12. com.sybase.CORBA.local

7.3. How do I initialize the ORB in PowerBuilder?

7.4. How do I initialize the ORB in PowerJ?

7.5. How do I initialize the ORB in a Java applet?

8. What to do when your Jaguar is caught in the Web

8.1. What is the World Wide Web?

8.2. How does the Web work?

8.3. What is HTML?

8.4. What is a URL?

8.5. What is HTTP?

8.6. What is TCP/IP?

8.7. What is IP?

8.8. What is TCP?

8.9. What is a dynamic Web site?

8.10. What are CGI, NSAPI, and ISAPI?

8.11. How do I access Jaguar components from the Web?

8.12. What is PowerDynamo?

8.13. How do I set up a Web site in PowerDynamo?

8.13.1. Creating a connection profile

8.13.2. Adding a mapping

8.14. How do I configure a Web server to use PowerDynamo?

8.15. How does a web server know to use PowerDynamo?

8.16. What is a PowerDynamo template?

8.17. What is a Dynamo tag?

8.18. What is DynaScript?

8.19. How do I create a PowerDynamo template?

8.20. How do I turn off the directory listing?

8.21. How do I set the Default document?

8.22. How do I add DynaScript to a template?

8.23. How do I create a PowerDynamo script?

8.24. How do I import a script into the template?

8.25. How are page parameters passed?

8.26. How are page parameters received?

8.27. How can I set URL page parameter case-sensitivity?

8.28. How do I deal with special characters in a URL?

8.29. How are multiple values passed using the multiple SELECT tag or checkbox?

8.30. How do I get the values from a multiple SELECT tag or checkbox?

8.31. How do I redirect a document in PowerDynamo?

9. Jaguar and PowerDynamo

9.1. How is PowerDynamo 3.5 integrated with Jaguar CTS 3.5?

9.2. How does PowerDynamo access Jaguar CTS?

9.3. How do I configure PowerDynamo to use Jaguar CTS through Java?

9.4. How does PowerDynamo handle Jaguar connections?

9.5. How do I store state between requests in PowerDynamo?

9.5.1. Passing page parameters

9.5.2. The session object

9.5.3. Storing state in a database

9.5.4. Storing state in an object instance

9.5.5. Another look at storing state in an object instance

9.6. How does a script access a Jaguar component using Java and CORBA?

9.7. How does a script access a Jaguar component using Java and EJB?

9.8. How are Java properties accessed using the java object?

9.9. How are data types passed by reference using the java object?

9.10. How are binary, decimal, and date/time data types handled?

9.11. How is a structure passed from PowerDynamo to Jaguar (Java)?

9.12. How is a Java array handled in PowerDynamo?

9.13. How is a Tabular ResultSet used in PowerDynamo and the java object?

9.14. How does a PowerBuilder component generate a Tabular ResultSet?

9.15. How does a PowerJ component generate a Tabular ResultSet?

10. Java and Jaguar on the Web

10.1. What are Java applets?

10.2. What is the Java sandbox?

10.3. How do I write a Java applet?

10.4. How are applets embedded in HTML pages?

10.5. How do I access PARAM values in a Java applet?

10.6. How do I deploy a Java applet to Jaguar?

10.7. What are Java servlets?

10.8. How do Java servlets work?

10.9. How are Java servlets that are not thread-safe handled?

10.10. When do I use Java servlets over Jaguar components?

10.11. How do I write a Java servlet?

10.12. How are Java servlets deployed to Jaguar?

10.13. How is a Java servlet initialized?

10.14. How do I access input data in a Java servlet?

10.15. How do Java servlets access Jaguar components using CORBA?

10.16. How do Java servlets access Jaguar components using EJB?

10.17. How do servlets log messages?

10.18. How is state managed in a Java servlet?

10.19. How do Java servlets use database connection caches?

10.20. What do the Java servlet properties on Jaguar do?

10.21. What are Java Server Pages?

Appendix A: Jaguar data types

Appendix B: A look ahead at Jaguar CTS 3.6

Appendix C: EAServer certification

index

About the Technology

An application server is the heart of your enterprise computing architecture, centralizing your web content, business logic, and access to your data and legacy applications. Sybase's application server, Jaguar CTS, delivers performance, scalability, and flexibility running CORBA , COM, Java/EJB, C++, and PowerBuilder components.

What's inside

  • J2EE development
  • Java Servlets
  • Jaguar administration & code balancing
  • EJBs
  • Web development with PowerDynamo
  • Advanced component design

About the authors

Michael J. Barlotta is the director of technology at AEGIS Consulting and a certified PowerBuilder developer. He is also the distributed technologies editor for the PowerBuilder Developer's Journal and the author of Distributed Application Development with PowerBuilder 6 and Jaguar Development with PowerBuilder 7. He lives in Alexandria, Virginia.

Jason R. Weiss is independent software consultant and a former certified PowerBuilder instructor, certified PowerBuilder developer, Microsoft Certified System Engineer, and Microsoft Certified Trainer. He lives in Sugar Land, Texas.