Thursday Nov 05, 2015

Announcing the Tuxedo Advanced Performance Pack

Well now that the busyness of OpenWorld is behind us, it's time to spice things up here on the Tuxedo blog.  The Tuxedo team is pleased to announce the availability of the Tuxedo Advanced Performance Pack.  This add-on option for Tuxedo improves application performance, availability, and manageability.  I'll briefly describe the features and benefits of this new option, but for more details please see the newly published white paper.

The Tuxedo Advanced Performance Pack has three major categories of enhancements:

  • Core enhancements that all Tuxedo applications can leverage
  • Oracle Database related enhancements for those applications using Oracle Database
  • Oracle RAC using XA distributed transaction enhancements for customers using Tuxedo and RAC with XA transactions

Together these enhancements can improve application performance by a factor of 2x to 3x, without any changes to application code.  In fact, all of the features provided by the Tuxedo Advanced Performance Pack are enabled simply by making a small change to the Tuxedo configuration file. 

The core enhancements include:

  • Self-tuning Lock Mechanism to automatically and dynamically set the value of SPINCOUNT to optimize the access to Tuxedo semaphores such as the Bulletin Board lock. 
  • Shared Memory Interprocess Communication - Instead of using System V IPC message queues to communicate between processes, the Tuxedo Advanced Performance Pack provides a facility to use shared memory based messaging.  The result is a reduction of buffer copies normally needed with IPC queues to zero copy messaging, all in user mode.  For applications using large buffers, the performance improvement under heavy load should be dramatic.
  • Tightly Coupled Transaction Branches Spanning Domains - This feature allows Tuxedo to use the same GTRID for distributed transactions that cross domain boundaries, such as one Tuxedo domain calling another Tuxedo domain, or WTC calling a Tuxedo domain.  This allows the sharing of locks and updates to resource managers preventing things like deadlocks that might have otherwise occurred.  As well when used with RAC, if the participating domains were connected to the same RAC database, then RAC will respond with XA_RDONLY for all branches but the last, speeding up transaction commits.
  • Concurrent Global Transaction Table Lock - This feature moves the synchronization of access to the Tuxedo global transaction table (GTT) out from under the Bulletin Board semaphore, to its own semaphore.  As well each transaction in the table has it's own semaphore to allow concurrent updates to the entries.  This eliminates and lock contention for applications making heavy use of XA transactions.

These next set of features benefit Tuxedo applications that utilize Oracle Database:

  • Instance Awareness - Although technically a feature of the Tuxedo Advanced Performance Pack, it's real benefit is in what other features it allows.  Essentially this feature lets Tuxedo know the details of Oracle Database connections.  In other words, what database, service, and instance any given Tuxedo server is using.
  • FAN Support - The Tuxedo Advanced Performance Pack introduces a new Tuxedo server, TMFAN, that connects to Oracle Database ONS to receive FAN notifications.  With this information, Tuxedo can make intelligent decisions based upon the configuration and state of a RAC database.  This enables the following features:
    • Planned Maintenance - When TMFAN receives a notification of planned maintenance for a RAC instance, TMFAN directs the Tuxedo servers connected to that instance to switch their connections to another instance to provide uninterrupted availability.
    • Unplanned Outages - The TMFAN server will get an ONS notification that an instance has failed, and as a result will remove Tuxedo servers connected to that instance from service routing selection.  The affected Tuxedo servers will be told to switch their connection to another instance and resume processing.  Thus eliminating in most scenarios any outage by client applications.
    • RAC Load Balacing - FAN periodically notifies RAC clients about how their load should be distributed across RAC instances.  When TMFAN receives a load balancing advisory, it attempts to ensure that the Tuxedo load for that database adheres to the advisory by changing the routing of requests, and changing the number of connections to each instance.
    • End-to-End Application Tracing - One of the more difficult jobs for a database administrator is identifying the source of problems.  With this feature, Tuxedo will automatically tag Oracle Database sessions with the name of the Tuxedo server, service, and client information.  Thus a dba can quickly locate Tuxedo applications, servers, services, or clients that are causing performance problems and work with the development team to remediate those problems.

Finally these features help applications that use Oracle RAC with Tuxedo distributed transactions:

  • Common XID - The tightly coupled transaction branch feature allows a GTRID to be shared across domains.  This feature extends that to allow the use of a single XID across Tuxedo servers and domains when requests end up using the same RAC instance.  The result is that in many cases instead of having a number of separate but related GTRIDS, and potentially a number of different transaction branches for the same RAC database, all requests if possible use the same instance and the same XID.  Ultimately this could result in a single one phase commit instead of a protracted cross domain two phase commit.
  • Partial One Phase Read-Only Optimization for RAC - Distributed transactions that span RAC instances have separate transaction branches for each instance involved in an XA transaction.  When a transaction manager prepares these various branches, Oracle Database does an optimization where it reports XA_READONLY for all branches but that last.  This feature leverages that capability by preparing all transaction branches but one.  If all other branches report read-only, then the final branch can be committed with a one-phase commit, bypassing the prepare step and the transaction log write.  This can substantially improve the performance of applications that primarily use RAC.
  • XA Transaction Affinity - This feature attempts to minimize the number of RAC instances involved in a distributed transaction.  During the routing of a request, Tuxedo will give preference to servers that are connected to a RAC instance that is already enlisted in the transaction.  The result is a smaller commit tree and the potential for a one phase commit if RAC is the only resource manager involved in the transaction.  As well, minimizing the number of RAC instances involved in the transaction minimize the amount of cross instance traffic within RAC.
  • Single Group Multiple Branches - Normally Tuxedo associates a single transaction branch with a Tuxedo server group.  This presents difficulties if the server group is using a RAC based database service as RAC does not allow a single transaction branch to span RAC instances.  This feature allows a Tuxedo server group to use multiple transaction branches if necessary.  The result is that Tuxedo servers using XA transactions with RAC can now use database services that are offered on multiple instances.  If the particular Tuxedo server a request is routed to is associated with a new instance for the transaction, the Tuxedo Advaned Performance Pack will create a new transaction branch for the newly enlisted instance.

All of these features add up to huge improvements in application performance, application availability, and simplified management.  Tuxedo servers using XA can now fully utilize the features of Oracle RAC including non-singleton services to improve performance and availability.  The integration of FAN into Tuxedo means that Tuxedo can dynamically respond to changes in RAC load and configuration, without any operator intervention.   Together they provide an unbeatable combination of performance, availability, and manageability.

Friday Sep 19, 2014

Tuxedo at Oracle Open World 2014

The Tuxedo team will be present in force at Oracle Open World 2014.  We have 7 sessions directly related to Tuxedo presented by engineers, customers,  architects, and product management.  Please add them to your schedule builder so you don't miss them.  They are:

Monday 2:45-3:30PM Moscone South 304
Oracle Tuxedo 12.1.3: What’s New and Why You Should Care [CON8261]

Come hear Frank Xiong - VP for the Tuxedo product family, describe what we've been working on.  He'll be joined by Deepak Goel - Tuxedo Product Manager, and Anastasio Garcia - Middleware, SOA & Delivery Manager from Telefónica España.

Monday 4:15-5:15PM Hotel Nikko - Nikko Ballroom III
Simplify and Optimize Oracle Tuxedo Application Deployments and Management [HOL9448]

Jared Li - Tuxedo development manager, and Chris Guo - Principle Member of Technical Staff will conduct a hands-on lab using Oracle TSAM Plus, Oracle Enterprise Manager, and Oracle Business Transaction Management to monitor, manage, and administer Tuxedo applications. 

Monday 5:45-6:45PM Hotel Nikko - Nikko Ballroom III
Use Java, the Spring Framework, and Oracle Tuxedo to Extend Existing C/C++/COBOL Apps [HOL9447]

A cast of thousands (Maggie Li, Chris Guo, Maurice Gamanho, and myself) will conduct a hands on lab demonstrating how easy it is to use Java and Spring to develop and extend Tuxedo applications. 

Tuesday 10:45-11:30AM Moscone South 200
Oracle Tuxedo Makes It Easy to Develop Composite Apps with Java, C, C++, and COBOL [CON8228]

Jared Li and Deepak Goel will present ways customers can develop composite applications that leverage the performance of C/C++/COBOL while still allowing the rapid creation of business logic in Java, all in a single environment.

Tuesday 7:00-7:45PM Moscone South 301
Oracle Tuxedo Monitoring and Management: Birds-of-a-Feather Meeting [BOF9641]

Come to a Birds of a Feather sessions where Deepak Goel, myself, and Mark Rakhmilevich will present some information on monitoring and managing best practices as well as an open discussion about how to best manage, monitor, and administer Tuxedo applications.

Wednesday 3:30-4:15PM Moscone South 200
The ART and Practice of Mainframe Migration and Modernization [CON8229]

Mark Rakhmilevich - Sr. Director Product Management/Strategy, Rui Pereira - Principal Sales Consultant, and Jeffrey Dolberg - Senior Principal Product Manager, will describe how customers are migrating their mainframe CICS, IMS and batch applications from costly IBM mainframe environments to open systems with Tuxedo and Tuxedo ART.

Thursday 9:30-10:15AM Marriott Marquis - Salon 14/15
Management and Monitoring of Oracle Tuxedo: Integrated, Automated [CON8273]

I will be presenting on the new features in TSAM Plus 12c that can be used to efficiently manage, monitor, and administer Tuxedo applications.  I will cover the recent integration of the Tuxedo observer for BTM, and how to decide on the right tool and strategy to address common performance and availability issues. 

And as always please stop by the Tuxedo booth in the Oracle DEMOgrounds in Moscone South.  We love to see customers and answer their questions.  This is your chance to meet product developers, product managers, engineering managers, and architects all focused on Tuxedo!

Hope to see you there!!

Todd Little
Oracle Tuxedo Chief Architect 

Sunday Apr 14, 2013

Developing and Deploying Services in Java on Tuxedo 12c is Easy and Straightforward by Todd Little, Oracle Tuxedo Chief Architect

One of the 187 new features in Tuxedo 12c is the ability to develop Tuxedo services in Java.  Prior to Tuxedo 12c, to create a Tuxedo service in Java meant adding another application server such as WebLogic Server or IBM WebSphere to the environment and using either the WebLogic Tuxedo Connector (WTC) or the Tuxedo JCA Adapter.  The service was then developed in Java, deployed to the Java EE application server, and then connected to existing Tuxedo applications via the Tuxedo domain gateway.  This meant that every request from Tuxedo to these Java services entailed a network hop and any distributed transactions required a subordinate transaction to be started in the Java EE application server.  As well, any native Tuxedo service called by the Java service now required another network hop--all in all usable, but requiring more administration, more resources, and more complexity.

Java Server Support

The Java Server support in Tuxedo uses a POJO programming model based upon Java SE.  The programming environment and APIs used for service development is JATMI, the same API used in WTC.  JATMI is essentially an object oriented version of the standard Tuxedo Application to Transaction Monitor Interface (ATMI).  It supports virtually all of the ATMI features and should be very familiar to anyone that has developed Tuxedo services in another language.  Yet Java developers have access to the rich set of class libraries that Java developers have come to know and love.  Since the environment is Java SE based, Java EE features such as transaction management are provided by the JATMI classes instead of the Java Transaction API.

Developing & Deploying Java Service on Tuxedo is easy

Developing and deploying services in Java on Tuxedo is extremely easy and straightforward.  The basic steps are to create a Java class that extends the TuxedoJavaServer class provided by JATMI.  Create one or more methods that will handle Tuxedo service requests.  These methods take a TPSVCINFO instance as the only parameter that contains such information as the name of the service called and the typed buffer the caller passed to the service.  The method extracts whatever information it needs from the typed buffer, performs its business logic and then creates a typed buffer to reply to the caller.  Finally the class calls the tpreturn() method to return the reply buffer back to the caller.

Configuring the Tuxedo Java Server

Once the server class or classes have been developed and compiled, the Tuxedo Java Server TMJAVASVR needs to be added to the Tuxedo UBBCONFIG file.  This Tuxedo provided server will load the JVM, load the server classes, and take care of dispatching incoming requests to the methods in the server classes.  Which classes to load and the mapping between Tuxedo service names that the server will offer are defined in an XML based configuration file. By default each public method in the server classes is advertised as the name of the Tuxedo service.   This configuration file also specifies such things as the classpaths to be used, JDBC driver and connection information for accessing a database, and resources such as FML/FML32 field tables and VIEW/VIEW32 classes.  After updating and loading the UBBCONFIG file, the application is ready to be booted and tested.

Sample Implementation and Configuration

Here is what a simple Java service implementation might look like:

public void JAVATOUPPER(TPSVCINFO rqst) throws TuxException {
        TuxAppContext myAppCtxt = getTuxAppContext();         /* The the application context */
        TypedBuffer svcData = rqst.getServiceData();        /* Get the callers data */
        TypedString TbString = (TypedString)svcData;        /* Assume it's a STRING buffer */
        String newStr = TbString.toString().toUpperCase();    /* Get the string and upper case it */
        TypedString replyTbString = new TypedString(newStr);    /* Create the reply buffer */
        myAppCtxt.tpreturn(TPSUCCESS, 0, replyTbString, 0);    /* Return reply buffer to caller */

The entry in the UBBCONFIG for the Tuxedo Java Server might look like:

         CLOPT="-- -c TJSconfig.xml"

which would start a single copy of the Tuxedo Java Server with 10 threads to handle requests. The configuration file TJSconfig.xml for this server might look something like:

<?xml version="1.0" encoding="UTF-8"?>
        <TuxedoServerClass name="MyTuxedoJavaServer"></TuxedoServerClass>

where MyTuxedoJavaServer is the name of the Java class that extends the TuxedoJavaServer class.Multiple copies of the Tuxedo Java Server can be run just as any other Tuxedo server using the same configuration file or each using their own configuration file.  All standard Tuxedo buffer types are supported, so services can use STRING, CARRAY, MBSTRING, FML/FML32, XML, or VIEW/VIEW32 buffers.  As well, Java services can call other Tuxedo services by using the tpcall() method on the TuxAppContext.


As the Tuxedo Java Server is a standard Tuxedo server, all of the monitoring, management, and administration capabilities that Tuxedo provides to C or other language servers is available to services written in Java.  These services also benefit from the unmatched reliability, availability, scalability, and performance that Tuxedo has proven to provide at thousands of customer sites.  By providing Java support in Tuxedo, customers are free to choose the language that best suits their application development needs, whether it is C, C++, COBOL, Python, Ruby, PHP, and now Java, and they all work together seamlessly to provide one integration application.

Stay Connected

Cloud Application Foundation (CAF):

Friday Apr 05, 2013

Three New Features Improve Availability of Tuxedo Based Applications- by Todd Little, Oracle Tuxedo Chief Architect

Tuxedo 12cR1 introduced several new features to help improve the availability of Tuxedo applications.  While Tuxedo is known for providing extremely high reliability, availability, scalability, and performance (RASP), there are always things Oracle can do to improve the availability of an application.  This post will cover three new features that help improve the availability of Tuxedo based applications.

Highly available systems try to avoid single points of failure to ensure the survivability of an application even in the midst of a failure.  Tuxedo has provided means to avoid single points of failures in virtually all scenarios except one, and that is when customers use data dependent routing or DDR.  DDR allows an application to be partitioned based upon the values contained in a field of a request buffer.  In the Tuxedo sample bankapp application, the ACCOUNT_ID field in a request message is used to determine which group of servers should handle the request.  This is controlled by the *ROUTING section in the UBBCONFIG file.  For each range of values, a server group can be specified to handle requests.  The issue with regards to availability is that only a single server group can be specified in releases prior to Tuxedo 12cR1.  While a server group can have multiple servers in it such that the failure of a single server won't cause a problem, a server group can only reside on a single machine in a cluster.  Thus if the machine that the server group is on fails, there will be some period of time that the partition of the application associated with that group of servers is unavailable.  Requests to the servers in that partition will fail until the machine is restarted or the server group migrated to another machine.

Improved *ROUTING Section

With Tuxedo 12cR1 the *ROUTING section can now specify up to three server groups that can be associated with a range of values.  This now allows the application partition to span up to 3 machines allowing the partition to still be available even if two of the machines completely fail.  Besides improving the availability of a partition, it also increases the scalability of a partition as now the resources of up to three machines can be utilized to process requests.  This same improvement is included in the Tuxedo domain gateway as well.  This allows the domain gateway to specify up to three remote domains that can be associated with a range of values in a field.  When combined with multiple gateways, multiple domains, and multiple network links, applications can achieve unmatched levels of availability.

Automatic Migration of Machines and Server Groups

Another feature increasing availability of Tuxedo applications introduced in Tuxedo 12cR1 is the automatic migration of machines and server groups.  Since very early on, Tuxedo has had mechanisms to allow a machine to be migrated from one host to another, or for a server group to be migrated from one machine to another.  This provides a recovery mechanism in the case of a machine or server group failure.  Prior to Tuxedo 12cR1 the migration process was a manual one that required either manual intervention or the creation of scripts that could perform some level of automated migration.  

While the failure of a machine or server group by itself doesn't typically affect the availability of a properly configured application, it may leave the application with one or more single points of failure.  This can be mitigated by ensuring there are always at least three copies of servers or server groups such that if one fails, redundancy is still maintained.  Even though it's not possible to define more than one BACKUP machine for the MASTER machine, and there is only one MASTER machine at any point in time, the failure of the MASTER machine doesn't necessarily impact application availability.  This is one misconception many Tuxedo customers have about MP or clustered operations with Tuxedo.  They see the MASTER machine as a single point of failure, but in fact normal application processing goes on even if the MASTER machine fails.  This is because the DBBL process which runs on the MASTER machine isn't involved in normal request routing.  All that happens if the MASTER fails or for some other reason the DBBL can't be reached is that configuration changes can't occur until the DBBL becomes available.

What automatic migration does under most failure scenarios, is to automate the migration of a machine to its backup, or a server group to its backup machine.  This eliminates the possibility of human error causing even more problems during a failure, and as well minimize the time to restore the system to normal operation or reducing the mean time to repair (MTTR).  Reducing MTTR is one of the most effective ways of increasing overall system availability.  Enabling these features is a simple matter of adding two new options to the *RESOURCES section of the UBBCONFIG file.  For more details, see the Migrating Your Application [] section of the Tuxedo 12cR1 documentation.

Service Versioning

Finally the last availability related feature added in Tuxedo 12cR1 is service versioning.  While that may not sound particularly related to high availability, what it allows is the concurrent deployment of multiple versions of an application.  By being able to run multiple versions of an application simultaneously, customers can gradually introduce new versions of their application without having to shut down their application or impacting existing users in any way.

Service version requires no changes to the application code, although presumably there are changes, probably even incompatible changes, which is why Oracle introduced service versioning.  The only required changes are in the UBBCONFIG file.  The APPVER option needs to be set in the *RESOURCES section, and then the REQUEST_VERSION, VERSION_RANGE, and VERSION_POLICY options added to the *RESOURCES section or to any server groups that need versioning support.  The REQUEST_VERSION indicates the version number requests will have.  For native clients and servers it is either the value specified at the *RESOURCES section or then *GROUPS section, with the latter having precedence.  Subsequent calls in the call path will have the request version associated with the server that made the request, unless the VERSION_POLICY is set to PROPAGATE which means the callers service version should be used.  The VERSION_RANGE then indicates what request versions a server is able to process.  When Tuxedo performs request routing, it will determine the request version number and then only select servers that support that version number.  Thus when an incompatible change is made, you would associate a new request version with any updated callers of the service, and set the version range of servers appropriately to ensure that only updated servers handle the requests.  This allows for the introduction of gradual changes and lets the application developer decide what versions of a service interface any given server supports.

These new features further enhance Tuxedo's capability to support highly available applications without requiring the customers to build those capabilities into their application code.  The result is that customers can deploy applications that provide 99.999% or better availability, while being able to scale those applications to 100s of thousands of services executed per second.

Was this information helpful? Please share your comments and let us know if there are any Oracle Tuxedo topics you would like us to discuss.

More Information

Oracle Tuxedo Release Notes

Stay Connected

Follow Tuxedo on:
Tuxedo Blog

Follow Cloud Application Foundation (CAF):


Thursday Mar 28, 2013

Oracle Tuxedo Mainframe Adapters Provide High Availability, Failover and Load Balancing- See the Demo

Oracle Tuxedo Mainframe Adapters Provide High Availability, Failover and Load Balancing- See the Demo

Oracle Tuxedo Mainframe Adapters provides bi-directional, fully transactional access to and from mainframe CICS, IMS and batch applications. Oracle Tuxedo applications can invoke CICS, IMS & Batch apps running on mainframes and vice-versa.

CRM can support multiple connections and multiple links which makes high availability like load balancing and failover become possible. CRM supports multiple connections including:

  • Several GWSNAXs connect to a single CRM. The connected Gateways share a common configuration offering a common set of services
  • High availability: Supports inbound loading balance (round robin)
  • High availability: Supports inbound failover
  • High availability: Supports inbound transaction affinity.
  • Interoperatiblity: only supports GWSNAX/CRM of qwc
  • Note: The GWSNAXs must be in different Tuxedo domains.
See the video below for a demonstration on how to configure Tuxedo Mainframe Adapters for high availability, failover/failback and load balancing. A step-by-step demo shows how the software works in real-time.

Stay Connected

Follow Tuxedo on:
Tuxedo Blog

Follow Cloud Application Foundation (CAF):  


Tuesday Jan 08, 2013

Tuxedo on Youtube!

We now have Oracle Tuxedo channel at youtube:  oracletuxedo  (  Following videos are posted to this channel:

  • Web services for Oracle Tuxedo 12c
  • Developing Oracle Tuxedo 12c applications using Solaris Studio
  • Developing new services in Java with Oracle Tuxedo 12c

These videos range from 7 to 10 minutes and focus on a particular feature of Tuxedo 12c.  We plan to post new videos to this channel periodically.  There are a few videos in the pipeline, some of which are listed here:

  • Using service versioning with Oracle Tuxedo 12c
  • Accessing Web services from Oracle Tuxedo 12c
  • Managing Tuxedo applications with Oracle Enterprise Manager Cloud Control 12c
  • Configuring Tuxedo Mainframe Adapter 12c for High Availability
  • Using Oracle Virtual Assembly Builder to deploy Tuxedo applications in IaaS environment

Make sure you are subscribed to this channel for ongoing updates!

Deepak Goel, Sr. Director, Tuxedo

Thursday Sep 20, 2012

Oracle Tuxedo at Oracle Open World 2012

Oracle Open World is almost here. There is quite a bit of Tuxedo to talk about at this year’s OOW. Primary focus will be on Tuxedo 12c, which was announced in August 2012 and is now generally available. Tuxedo 12c is a major release which many-many new and exciting features in almost all components of Tuxedo. You will not only hear about these features in various conference  sessions, you will also have an opportunity to see these features in action at demo grounds or play with these yourselves in hands-on-labs.

Following is listing of Tuxedo related activities at OOW 2012:

Conference Sessions

Mon 1 Oct, 2012

10:45 AM - 11:45 AM, Oracle Tuxedo: What’s New in 12 c, Strategy, and Roadmap, Moscone South - 309

4:45 PM - 5:45 PM, Simplify Operations, Administration, and Management of Oracle Tuxedo Applications, Marriott Marquis - Golden Gate C3

Wed 3 Oct, 2012

3:30 PM - 4:30 PM, The Art and Practice of Mainframe Migration and Modernization, Moscone South - 309

Thu 4 Oct, 2012 

2:15 PM - 3:15 PM, High-Performance, Scalable Enterprise Messaging for C/C++/COBOL Applications, Marriott Marquis - Salon 7

HOL (Hands-on Lab)

Tues 2 Oct, 2012

5:00 PM - 6:00 PM Deploy, Manage, and Monitor Oracle Tuxedo Applications in the Enterprise Cloud, Marriott Marquis - Salon 3/4

Wed 3 Oct, 2012

1:15 PM - 2:15 PM, Develop C/C++ Applications for the Cloud with Oracle Tuxedo and Oracle Solaris Studio, Marriott Marquis - Salon 5/6

BOF (Birds-of-a-Feather)

Mon 1 Oct, 2012

6:15 PM - 7:00 PM, Develop Scalable, Highly Available Enterprise Services in Java with Oracle Tuxedo, Marriott Marquis - Golden Gate C1


Oracle Tuxedo: #1 Enterprise Cloud Platform for C/C++/COBOL Apps,  Moscone South, Right - S-215

Mainframe Rehost with Oracle Tuxedo Runtimes for CICS, IMS, and Batch, Moscone South, Right - S-216

Tuxedo Customer Appreciation Dinner

Monday 1 Oct, 2012

7:30 PM - Please contact your Oracle Account Representative to attend. Limited seating.

Deepak Goel

Sr. Director, Software Development


Sunday Jul 15, 2012

Brand new Oracle Tuxedo 12c

Wait for Oracle Tuxedo 12c is almost over. We are launching Oracle Tuxedo 12c on July 31, 2012.  Participate in the launch event to learn more about Tuxedo 12c new features.

The #1 C/C++/Cobol Application Server for Conventional and Cloud Environments

The brand new Oracle Tuxedo 12c offers you the only open, robust platform to help you develop, deploy, and run mission-critical, C/C++/COBOL applications on a traditional data center infrastructure, engineered systems such as Oracle Exalogic, and your enterprise cloud. Add the new Oracle Tuxedo Application Runtimes 12c and you can migrate your mainframe applications faster and cheaper with lower risk.

With Tuxedo and Tuxedo Application Runtimes 12c you can:

  1. Run mission-critical C/C++/COBOL applications in conventional, and cloud deployments
  2. Accelerate your time to market and time to modernize with state-of-the-art developer and operational tools
  3. Cloud-enable your CICS, IMS, and batch applications—run on a platform with mainframe-grade RASP

You must register using this link to participate in the event.  Hope to see you there.



Thursday Jun 07, 2012

Tuxedo Load Balancing

This post describes how Tuxedo does load balancing.[Read More]

Thursday May 10, 2012

Free Pass to Oracle OpenWorld 2012: Oracle Fusion Middleware Innovation Awards 2012

Are you doing something unique and innovative with Tuxedo?

Submit a nomination today for the Oracle Fusion Middleware Innovation Awards. Winners receive a free pass to Oracle OpenWorld 2012 in San Francisco (September 30 - October 4th) and will be honored during a special event at OpenWorld.

Categories include:

  •                     Cloud Application Foundation, including Tuxedo
  •                     Oracle Exalogic
  •                     Service Integration (SOA) and BPM
  •                     And more

To be considered for this award, complete the Oracle Fusion Middleware Innovation Awards nomination form and send to The deadline to submit a nomination is 5pm Pacific on July 17, 2012.

Saturday Jan 28, 2012

Leveraging Infiniband to bypass the BRIDGE

As Deepak mentioned in the previous post, the Tuxedo team has spent a lot of effort in leveraging some of the unique features of the Exalogic platform.  Specifically we've developed support for Remote Direct Memory Access.  This is a feature of Infiniband that allows one node to read or write directly into the memory of another node.  In particular this can all be done from user mode, meaning there is no need to enter the operating system kernel to pass information from one node to another node.

Tuxedo 11gR1PS2 uses this RDMA capability to bypass the BRIDGE process used in a Tuxedo cluster (MP mode domain.)  In standard hardware environments, when a request is made to a server on a remote node, the request is given to the BRIDGE which in turn passes the request to the remote BRIDGE which eventually places the request on the appropriate server's queue.  The reply message takes the reverse path being placed on the local BRIDGE queue, relayed to the remote BRIDGE by a network connection, and then finally placed on the client's reply queue.  In some cases this becomes a bottleneck as the BRIDGE is only partially multi-threaded.  So on high core count systems with a lot of requests being made to remote servers, the BRIDGE creates a throughput bottleneck.  As well the BRIDGE introduces substantial latency as the total round trip requires 4 System V IPC messages and two network messages.  Where a local request/response can be performed in about 35 microseconds, a remote request/response through the BRIDGE can take about 1100 microseconds.  This diagram shows the message flow:

With the BRIDGE bypass feature, a native client uses RDMA to place its request directly on the remote server's queue, and the reply is placed directly on the client's reply queue.  This eliminates two message queue operations and two network operations.  The net result is that throughput increases 7 fold for remote operations by bypassing the BRIDGE and reduces latency from 1100 microseconds to 160 microseconds.  This diagram shows the message flow:

For the next release of Tuxedo sometime this summer, we're planning even more optimizations to achieve even more throughput and lower latency for remote operations.

Wednesday Aug 24, 2011

Oracle Tuxedo at OOW 2011

Oracle Open World 2011 is just around the corner. There will be quite a bit of Oracle Tuxedo specific activities this year. We will host five breakouts, two hands-on-labs and one birds-of-feather session. You will hear what’s new with Tuxedo and see many of the new features in action at the demo grounds. We will kick off the activities with Tuxedo roadmap discussion and delve into new features introduced over the last year, such as deploying existing Tuxedo applications and/or mainframe applications on Exalogic for better performance, reduced complexity and reduced operating expenses. Here is chronological listing of all Tuxedo related sessions:

1. 15730: Oracle Tuxedo: Roadmap and Strategy - Monday, 2pm

2. 15705: High performance web applications with C/C++/PHP/Python - Monday, 5pm

3. 33700: Birds-of-Feather: Road to Oracle Exalogic for Oracle Tuxedo Applications – Monday, 6:30pm

4. 15040: The ART and Practice of Mainframe Migration and Modernization – Tuesday, 4pm

5. 31020: Hands-on-Lab: Mainframe to Oracle Exalogic – Wednesday, 4:45pm

6. 15703: Integrating Oracle WebLogic/SOA with Legacy Mainframe Applications - Thursday, 10:30am

7. 31120: Hands-on-Lab: Develop High performance, service-oriented C/C++ applications for Oracle Exalogic – Thursday, 12pm

8. 15731: Modernizing Mainframe Applications Using Oracle Tuxedo ART 11g – Thursday, 1:30pm

Hope to see you in these sessions and at demo grounds!

Deepak Goel

Sr. Director, Tuxedo Development

Friday Jul 30, 2010

OTN Virtual Developer Day in North America a huge success

If you missed the Virtual Developer Day for Tuxedo sponsored by Oracle Technology Network, then you missed out on a great event. Attendees got to listen to a keynote on how to develop SOA applications without killing your performance. As well they learned what Tuxedo and scripting languages can do for developing agile fast time to market applications using the combination of Tuxedo's robust infrastructure with the quick development time associated with scripting languages. Finally attendees were able to try these things out by executing hands on labs either on the Rackspace Cloud or on their own machines using a downloadable VirtualBox appliance that contained all the necessary software.

The good news is that if you missed the event, you can still go to the event and listen to the sessions and try the hands on labs. Simply visit the event's wiki home page and select Post Conference Content Access.


This is the Tuxedo product team blog.


« June 2016