cancel
Showing results for 
Search instead for 
Did you mean: 

Timezone Region not found

Former Member
0 Kudos

Hi ,

I got below exception in JDBC receiver when trying to connect to Oracle db. Dev and QA systems are configured to post data to same db. Dev works fine while QA has got the below issue.

Error when attempting to get processing resources: com.sap.aii.af.lib.util.concurrent.ResourcePoolException: Unable to create new pooled resource: DriverManagerException: Cannot establish connection with the registered driver. oracle.jdbc.OracleDriver returns: ORA-00604: error occurred at recursive SQL level 1 ORA-01882: timezone region not found . : SQLException: ORA-00604: error occurred at recursive SQL level 1 ORA-01882: timezone region not found


There are other channels, using oracle drivers, working fine in QA. But the channel configured to one particular component has this issue. Had approached Basis to look into this. They do not respond until i give them enough reason to believe its their task.


SDN doesn't have much information on this issue. Appreciate your reply.


Thanks,

Sudeep

Accepted Solutions (1)

Accepted Solutions (1)

vadimklimov
Active Contributor
0 Kudos

Hi Sudeep,

Which Oracle release do remote databases use?

One of assumptions regarding cause of the issue may be the one described in Oracle support article 1068063.1 ("Connections fail with "ORA-01882: timezone region not found" after upgrade from JDBC 11.1 to 11.2"): "The ORA-01882 is due to a change of functionality in JDBC 11.2 in conjunction with a default timezone name/region on the client that is not supported by the database".

The solution proposed in the article, is to ensure a timezone supported by the database, is used by the JDBC client (here, PO) when connecting to the Oracle database. Timezones which are recognized by the Oracle database, can be checked by looking into view V$TIMEZONE_NAMES:

SELECT DISTINCT tzname FROM V$TIMEZONE_NAMES

The workaround is to set the parameter oracle.jdbc.timezoneAsRegion with value false. This can be done in advanced mode of the JDBC communication channel. Please note that Oracle database specific connection parameter names should be preceded with prefix driver: (see SAP Note 1078420).

Best regards,

Vadim

Former Member
0 Kudos

Hi Vadim,

This parameter works. Great help.

Few follow up questions -

     why is that only one channel fails while rest are working fine. dev and QA PI connects to same database. dev works fine while in QA relative channel fails (as said other channels connecting to different oracle db works fine in QA).

If this was a driver issue, Should it not affect all other channels. By looking at the log, I can see the driver is yet to start insertion into database before which this timezone region check is made. How does this timezone check work.

Thanks,

Sudeep

vadimklimov
Active Contributor
0 Kudos

Hi Sudeep,

As you said, other communication channels are used to connect to other Oracle databases. Can you please check which releases are used on those databases and the affected one? Are they the same or different?

Can you please also check if timezone which is set on operating system level of PO of Development and QA environments is the same or differs.

The issue above is not actually an issue of JDBC driver, but rather behavior of remote database reacting on the timezone which it cannot recognize.

Best regards,

Vadim

Former Member
0 Kudos

Hi Vadim,

While i try to find answers to these questions, I can now assume that an implicit timezone check is carried out during handshake, initiated/requested by database, to fix issues related to timezone mismatch before any statements are executed that can carry unknown timezone value. is this correct?

I have got a contradicting solution from Basis claiming it as a permanent fix. They say as per note 1131526, they have run the report TZONECHECK to check the time zone settings.

As per this note, when you use the check "Check Table TTZ5S (Country, Region for Time Zone)", the first entry of the table is always issued as incorrect, even if it is correct and does not contain any incorrect data.

This problem is caused by a program error and solution is to implement the source code corrections specified under the corrections.


This seem to be more of abap related. I don't think this can fix issues in JDBC. Please let me know if otherwise.

Thanks,

Sudeep

vadimklimov
Active Contributor
0 Kudos

Hi Sudeep,

When JDBC client establishes connection to the remote Oracle database, one of steps that are performed during this procedure, is setup of session timezone, this is when the remote Oracle database checks if the timezone which JDBC client uses, is recognized/known to the Oracle database.

The Note 1131526 is applicable for ABAP systems, so it isn't really relevant for Adapter Engine / JDBC adapter.

Best regards,

Vadim

Answers (0)