Thursday, 7 May 2015

Near continuous availability of data centric applications becomes a reality

With the advancements in DB2 server clustering technologies (both Sysplex and pureScale) and the DB2 Connect client drivers, it is now possible to achieve near continuous application availability. Availability is now no longer about only database server availability, but there is more focus on availability of applications that access the data stored on the server. Having the server up and running is not very meaningful if the applications connected to the server suffer connection failures and downtime. And customers rightfully have come to expect that their local and distributed applications originating from around the world, stay up and running 24X7.

DB2 Connect client driver availability technology has grown leaps and bounds over the last few years – this ensures that applications continue to function in case of server unplanned outages as well as planned outages such as rolling upgrades when members of a DB2 cluster are migrated one by one. Client driver availability algorithms complement server availability technologies to ensure highest availability in a distributed environment. A combination of features around workload balancing and failover have been built into DB2 Connect client drivers. While workload balancing achieves higher throughput by distributing connections and transactions to members with maximum capacity at any point in time, failover reconnects applications to next best available member in case of a connection failure.

In recent releases of DB2 Connect, default values of properties that determine high availability behavior have been changed to values that work well out of the box for majority of customers. Given the number of products in the DB2 stack (application server, client driver, DB2) and myriad high availability knobs at each layer, customers found it difficult to achieve an optimal end-to-end configuration leading to outages that could have been avoided in the fist place. Default value changes also control resource consumption and allow faster recovery from failover. For example, the default value of maxTransportObjets was changed from -1 (unlimited connections) to a more reasonable value of 1000, that prevents runaway applications from creating too many unnecessary connections and deplete system resources.

Number of features were added for easier problem determination in complex high availability setups. For eg, new statistics were introduced to better manage socket connections to clustered DB2. More details were added to the errors that are returned to the application going against a cluster – that provide the application more information on what kind of failover happened and whether the application needs to take further action for a successful transaction. For eg, reason codes and detailed message texts were added to the -30108 error that notifies the application that the transaction did not qualify for a seamless reroute to another DB2 member and that the application should resubmit the transaction for the reroute to occur.

High availability technologies built into the DB2 server and DB2 Connect client drivers complement each other and together have come a long way to satisfy customer's needs for continuous availability of business critical data and applications. To get the most availability for distributed applications, we do recommend you to upgrade DB2 Connect client drivers to the latest available levels.

Friday, 23 January 2015

DB2 – perfect partner for Smart Application Developers

Application paradigm has evolved rapidly – new programming and scripting languages geared towards Web and Mobile spring up regularly. DB2 has embraced new developments in the application space and continues to be the database of choice for application developers. It has kept up with new programming trends - whenever a new programming language or framework gets adopted by the developer community, DB2 steps up and adds or enhances support. Selection of programming language by developers depends upon several factors such as skills, performance, usage scenario, whether libraries are available for desired functionality etc.

Primary APIs for DB2 include C and C++, Visual Basic and Visual C# (for .NET applications),and Java (JDBC and SQLJ). DB2's CLI/ODBC and JDBC drivers serve as the base for several open source wrappers provided by DB2 – such as Perl, PhP, Python, Ruby and Node.js Advantage of using the JDBC and ODBC/CLI drivers as the foundation is that they not only implement standard API, but also provide advanced features such as workload balancing, failover, security, connection management, monitoring etc. that the wrappers can take advantage of to build robust enterprise applications. DB2 also contributes actively to the open source communities to keep them up-to-date. We are also seeing adoption of frameworks and Object-Relational Mapping tools such as Hibernate, JPA, iBatis and Spring for enterprise applications that take advantage of accelerators provided by DB2 for ease of use and improved performance.


Expect to see below diagram grow fast over time as application developers experiment with new APIs and DB2 continues down the path of supporting those application developers, further strengthening its position as an ideal database server for Cloud, Analytics and Mobile.

 

Tuesday, 16 December 2014

Integrating on-prem DB2 for z/OS data with Cloud applications via Cloud Integration Service on Bluemix

DB2 for z/OS is the preferred Systems of Record for mission critical enterprise data. With the advent of Cloud paradigm, enterprise customers are looking for ways in which they can easily and securely expose DB2 for z/OS data to emerging Systems of Engagement. This has led to a hybrid cloud model, whereby public cloud offerings such as Bluemix need to access DB2 z/OS data hosted on premises.

With the growing popularity of Bluemix, customers want to quickly expose DB2 z/OS data to Bluemix developers as APIs and allow seamless integration of cloud and on-prem data. IBM Cloud Integration service for Bluemix has made that possible by adding native support for DB2 for z/OS as an enterprise endpoint. With Cloud Integration service on Bluemix, you can not only connect to on prem Db2 z/OS, browse and move data, you can also create REST APIs for DB2 z/OS CRUD operations that can be invoked easily by Bluemix applications.



To allow connectivity to DB2 z/OS running behind a firewall, you need to install and configure an on premise Websphere Cast Iron Secure Connector behind the firewall such that it has direct access to DB2. Secure Connector sets up a tunnel between company's secure network and Bluemix applications. Once you are connected to on-prem DB2 for z/OS using Secure Connector, you can sync data between on premise DB2 and Cloud Database using Data Sync capability. You can also choose to not move any data, but just expose REST APIs for Bluemix users to access DB2 data residing on prem.

You can find step by step instructions to access on-prem DB2 data from Bluemix at https://www.ng.bluemix.net/docs/#services/CloudIntegration/index.html#gettingstartedwithcloudintegation.


Thursday, 4 December 2014

Faster problem determination in DB2 Connect applications with Smarter Serviceability

As DB2 Connect 10.5 FP5 goes GA, there are several exciting new capabilities to look forward to. I want to highlight our emphasis on enhancing serviceability of DB2 Connect drivers for faster problem resolution. Adoption of DB2 Connect has proliferated as customers strive to modernize their applications for a distributed environment. Most of these customers run with a complex multi-tiered stack environment with several Application Servers and Databases. When an application failure happens, it is often extremely difficult to pinpoint the cause of the failure due to lack of sufficient diagnostics.

Although DB2 Connect drivers offer rich tracing capability, collection of traces require recycle of Application Servers, which is difficult in production environments. Problem is aggravated if symptom is intermittent and workload is high, leading to longer turnaround time for resolution and frustration for all stakeholders (customer, IBM). To overcome this, DB2 Connect Java driver now offers an online tracing capability, which means that traces can be turned on/off and levels of tracing can be altered without needing to bring down the Application Server/JVM. An efficient polling mechanism is introduced whereby the tracing related properties such as TraceFile and TraceLevel are monitored at periodic intervals – these properties can be dynamically altered and will be picked up during polling. This will alleviate customer's pain point of bringing down application servers just to collect traces in 24X7 production environments.

Another area we addressed was lack of First Failure Data Capture. Again, we rely heavily on traces and there was no way to collect minimal targeted diagnostic information on a failure without needing to turn on traces (which can be heavy weight). With Cancun, we have introduced the capability to collect relevant diagnostics pertaining to specific error scenarios in both Java (JDBC) and non-Java (CLI/ODBC) drivers without turning on traces. When certain exceptions happen (which is configurable by customers), basic diagnostic information on that exception is auto logged in designated directories (which is also configurable). This prevents loss of critical diagnostic data on the first occurrence of the failure and improves the chances of resolution on the first failure itself rather than waiting for a recurrence.

We have embarked on this journey to enhance overall serviceability of DB2 Connect to drive up customer satisfaction and improve overall product experience of all stakeholders (application developers, App Server admins, DBAs, systems programmers, IBM support and dev). There are several serviceability related requirements on our radar for future releases. If you would like to see a particular serviceability feature built into the product in the long term, do drop me a note at pallavipr@in.ibm.com.

Monday, 10 November 2014

Consider direct distributed connections to DB2 and trading up to DB2 Connect Unlimited Edition

Top banks, financial services, retail and telecom companies store their mission critical data on  DB2 for z/OS, DB2 LUW and DB2 for i. Distributed workloads accessing DB2 data have proliferated due to the ubiquity of Web and Mobile applications. DB2 Connect provides a portfolio of database drivers offering distributed access to DB2 data through standard interfaces such as JDBC, SQLJ, OLE DB, ADO, ADO.NET, CLI, embedded SQL and scripting Languages such as PhP, Python, Ruby and Perl.

For distributed access to data stored on DB2 for z/OS and DB2 for i, license entitlement to DB2 Connect must be purchased. DB2 Connect is offered in several editions (Enterprise Edition, Application Server Edition, Unlimited Edition). Introduction of Unlimited Edition for both DB2 for z/OS and DB2 for i offers flexibility for direct connections to DB2 servers (without the DB2 Connect Server or Gateway) and transparently handles growth in number of users and applications. More customers anticipate the need for more users accessing DB2 data from Web, Mobile and Cloud anytime, anywhere. DB2 Connect Unlimited Edition license charges are not based on number of users or application servers, rather it is based off the processing capacity of zSeries and iSeries servers. This allows any number of distributed users, applications and workstations to connect. It also allows server side install of DB2 Connect license, instead of replicating the license on potentially hundreds of client workstations or application servers.

We are seeing a pattern whereby the decision to trade up to DB2 Connect Unlimited Edition is taken when customers adopt direct connectivity to DB2 servers (without the DB2 Connect Server or Gateway component). With the advancements in DB2 Connect client drivers around connection management, failover and workload management, more customers are adopting direct distributed connectivity to DB2 instead of going through the DB2 Connect Server or Gateway component. Direct connections to DB2 offers several advantages -

1) Simplification of distributed connectivity by reduction of one layer.
2)  Reduced resource consumption since no resources for DB2 Connect Server machines  (hardware, software) needed. No installation, maintenance, migration of this extra component.
3) Improved availability as point of failure is removed.

4)  Improved response time of distributed applications (especially OLTP applications) due to elimination of extra hop.
 

We encourage you to evaluate simplification of DB2 Connect environment by going direct to DB2 (without Gateway) and upgrading to Unlimited Edition. You will not have to worry about growing number of users and applications who become instantly available without any prior notice from different channels such as Web, Mobile and Cloud.

Modernize legacy COBOL to Java on z/OS

Java has evolved into a viable alternative to COBOL for many DB2 z/OS customers. There is an emerging trend for customers to write new business logic in Java, and in some cases replace COBOL business logic with Java. This offers several advantages -
  • Standard Java APIs (such as JDBC) allows customers to enable applications for diverse mediums such as Web and Cloud.
  • Developers can rapidly build applications by reusing existing business logic rather than bottom up development.
  • Customers can easily attract talent to develop and maintain Java code.
  • Speciality processors on mainframe (zIIP and zAAP) allow offload for Java applications lowering the total cost of ownership.
  • Advances in Java technology on z/OS provides comparable performance, throughput and overall quality of service that are the hallmarks of native COBOL.

Many customers are in the process of running proof-of-concepts to evaluate Java technology choices in the context of their environment. It is an interesting experience to work with customers who are at the leading edge of business transformation. Java presents new opportunities for exploitation of business logic through many channels, but it also comes with a set of challenges that customers must be prepared to handle.

An important aspect we addressed with a couple of large COBOL heavy accounts who opted to use JDBC interfaces was a change in their mindset to be more aware of tuning considerations for DB2 and Java environment. It was a rewarding exercise to build awareness on the fundamental differences between native COBOL that goes through static SQL execution paths in DB2 versus JDBC that goes through dynamic SQL paths. Although static SQL may provide better out-of-box performance, dynamic SQL has tuning options that takes the performance at par with static SQL with all the flexibility of dynamic SQL. A few large accounts who prefer the predictability and security of static SQL are also evaluating SQLJ – which allows Java applications to use static sql with DB2 by binding packages. SQLJ applications do need coding of custom SQLJ syntax. There are several other important considerations such as decision to rewrite COBOL code into Java versus just introducing Java wrappers around COBOL logic (which will be faster to build). There are several smaller considerations such as connectivity options to DB2 (Type 4 vs Type 2) and recommended Java programming model for high performance.

Transformation from COBOL to Java for DB2 on z/OS is an investment – but it can yield returns in the short and long term by exposing core Systems of Records applications to modern Systems of Engagement. Enterprise modernization is maturing from a "nice-to-have" initiative to an essential initiative and what began as a modernization movement in a handful of leading edge adopters is now spreading across the global z/OS customer base. If you are one of those customers sitting on the fence for modernization, time to act is now. IBM taps into its global network of DB2, z/OS, CICS, COBOL and Java integration experts to provide guidance for the success of such legacy modernization projects.