You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Heath Thomann (JIRA)" <ji...@apache.org> on 2010/05/17 20:10:42 UTC

[jira] Created: (OPENJPA-1668) User's ''DBDictionary.sequenceSQL' setting not being honored on zOS

User's ''DBDictionary.sequenceSQL' setting not being honored on zOS 
--------------------------------------------------------------------

                 Key: OPENJPA-1668
                 URL: https://issues.apache.org/jira/browse/OPENJPA-1668
             Project: OpenJPA
          Issue Type: Bug
    Affects Versions: 2.0.0, 1.2.2, 1.0.3
            Reporter: Heath Thomann
            Assignee: Heath Thomann
            Priority: Minor


When setting/overriding the 'DBDictionary.sequenceSQL' value via a property in the persistence.xml file, as follows:

	<property name="openjpa.jdbc.DBDictionary" value="db2(sequenceSQL='SELECT SCHEMA AS SEQUENCE_SCHEMA, NAME AS SEQUENCE_NAME FROM CIDB2.SYSSEQUENCES')"/>                                                        

this value is not used when running DB2 on zOS.  Rather, the 'default for zOS' is used, i.e.: "SELECT SCHEMA AS SEQUENCE_SCHEMA, NAME AS SEQUENCE_NAME FROM SYSIBM.SYSSEQUENCES";.  

To understand how this is happening, let me describe how 'sequenceSQL' is defined/set at runtime.  First, the ctor of DB2Dictionary is called, and the variable is set to a default:

        sequenceSQL = "SELECT SEQSCHEMA AS SEQUENCE_SCHEMA, "
            + "SEQNAME AS SEQUENCE_NAME FROM SYSCAT.SEQUENCES";

After the DB2Dictionary ctor is called, openJPA assigns to 'sequenceSQL' the value defined in the system property.  So at this point things are all good and the variable is set to what is defined in the prop.  Where things go awry is when the method DB2Dictionary.connectedConfiguration is called.  In the method there is some platform specific code which is executed which overwrites the sequenceSQL value:

       // platform specific settings
        switch (db2ServerType) {
        case  db2ZOSV8xOrLater:
		........
            sequenceSQL = "SELECT SCHEMA AS SEQUENCE_SCHEMA, "
                + "NAME AS SEQUENCE_NAME FROM SYSIBM.SYSSEQUENCES";

Thanks,

Heath

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (OPENJPA-1668) User's ''DBDictionary.sequenceSQL' setting not being honored on zOS

Posted by "Michael Dick (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/OPENJPA-1668?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12868793#action_12868793 ] 

Michael Dick commented on OPENJPA-1668:
---------------------------------------

This is a case where I wish we had a separate DBDictionary class for Z/OS (although we can't detect it until we have a connection so that would pose its own challenges). 

That said we shouldn't override user settings - the connectedConfiguration method needs to take user settings into account before overwriting the variables. AFAIK there isn't a good way to detect whether a config property was set by the user or just accepted the default value though - so solving the problem might be more kludgy than we'd like. 

I'd vote for checking whether sequenceSQL has the default value in connectedConfiguration. If it has the default we'll go ahead and override with a z/os default. If it isn't the default we'll leave it alone (maybe issue a trace statement). 

Any other ideas I've missed? 

> User's ''DBDictionary.sequenceSQL' setting not being honored on zOS 
> --------------------------------------------------------------------
>
>                 Key: OPENJPA-1668
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1668
>             Project: OpenJPA
>          Issue Type: Bug
>    Affects Versions: 1.0.3, 1.2.2, 2.0.0
>            Reporter: Heath Thomann
>            Assignee: Heath Thomann
>            Priority: Minor
>
> When setting/overriding the 'DBDictionary.sequenceSQL' value via a property in the persistence.xml file, as follows:
> 	<property name="openjpa.jdbc.DBDictionary" value="db2(sequenceSQL='SELECT SCHEMA AS SEQUENCE_SCHEMA, NAME AS SEQUENCE_NAME FROM CIDB2.SYSSEQUENCES')"/>                                                        
> this value is not used when running DB2 on zOS.  Rather, the 'default for zOS' is used, i.e.: "SELECT SCHEMA AS SEQUENCE_SCHEMA, NAME AS SEQUENCE_NAME FROM SYSIBM.SYSSEQUENCES";.  
> To understand how this is happening, let me describe how 'sequenceSQL' is defined/set at runtime.  First, the ctor of DB2Dictionary is called, and the variable is set to a default:
>         sequenceSQL = "SELECT SEQSCHEMA AS SEQUENCE_SCHEMA, "
>             + "SEQNAME AS SEQUENCE_NAME FROM SYSCAT.SEQUENCES";
> After the DB2Dictionary ctor is called, openJPA assigns to 'sequenceSQL' the value defined in the system property.  So at this point things are all good and the variable is set to what is defined in the prop.  Where things go awry is when the method DB2Dictionary.connectedConfiguration is called.  In the method there is some platform specific code which is executed which overwrites the sequenceSQL value:
>        // platform specific settings
>         switch (db2ServerType) {
>         case  db2ZOSV8xOrLater:
> 		........
>             sequenceSQL = "SELECT SCHEMA AS SEQUENCE_SCHEMA, "
>                 + "NAME AS SEQUENCE_NAME FROM SYSIBM.SYSSEQUENCES";
> Thanks,
> Heath

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (OPENJPA-1668) User's ''DBDictionary.sequenceSQL' setting not being honored on zOS

Posted by "Michael Dick (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OPENJPA-1668?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Dick resolved OPENJPA-1668.
-----------------------------------

    Fix Version/s: 1.3.0
                   2.0.1
       Resolution: Fixed

> User's ''DBDictionary.sequenceSQL' setting not being honored on zOS 
> --------------------------------------------------------------------
>
>                 Key: OPENJPA-1668
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1668
>             Project: OpenJPA
>          Issue Type: Bug
>    Affects Versions: 1.0.3, 1.2.2, 2.0.0
>            Reporter: Heath Thomann
>            Assignee: Heath Thomann
>            Priority: Minor
>             Fix For: 1.2.3, 1.3.0, 2.0.1, 2.1.0
>
>         Attachments: OPENJPA-1668-1.2.x.patch.txt
>
>
> When setting/overriding the 'DBDictionary.sequenceSQL' value via a property in the persistence.xml file, as follows:
> 	<property name="openjpa.jdbc.DBDictionary" value="db2(sequenceSQL='SELECT SCHEMA AS SEQUENCE_SCHEMA, NAME AS SEQUENCE_NAME FROM CIDB2.SYSSEQUENCES')"/>                                                        
> this value is not used when running DB2 on zOS.  Rather, the 'default for zOS' is used, i.e.: "SELECT SCHEMA AS SEQUENCE_SCHEMA, NAME AS SEQUENCE_NAME FROM SYSIBM.SYSSEQUENCES";.  
> To understand how this is happening, let me describe how 'sequenceSQL' is defined/set at runtime.  First, the ctor of DB2Dictionary is called, and the variable is set to a default:
>         sequenceSQL = "SELECT SEQSCHEMA AS SEQUENCE_SCHEMA, "
>             + "SEQNAME AS SEQUENCE_NAME FROM SYSCAT.SEQUENCES";
> After the DB2Dictionary ctor is called, openJPA assigns to 'sequenceSQL' the value defined in the system property.  So at this point things are all good and the variable is set to what is defined in the prop.  Where things go awry is when the method DB2Dictionary.connectedConfiguration is called.  In the method there is some platform specific code which is executed which overwrites the sequenceSQL value:
>        // platform specific settings
>         switch (db2ServerType) {
>         case  db2ZOSV8xOrLater:
> 		........
>             sequenceSQL = "SELECT SCHEMA AS SEQUENCE_SCHEMA, "
>                 + "NAME AS SEQUENCE_NAME FROM SYSIBM.SYSSEQUENCES";
> Thanks,
> Heath

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (OPENJPA-1668) User's ''DBDictionary.sequenceSQL' setting not being honored on zOS

Posted by "Heath Thomann (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OPENJPA-1668?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Heath Thomann updated OPENJPA-1668:
-----------------------------------

    Attachment: OPENJPA-1668-1.2.x.patch.txt

I'm attaching a patch (OPENJPA-1668-1.2.x.patch.txt) for 1.2.x.

> User's ''DBDictionary.sequenceSQL' setting not being honored on zOS 
> --------------------------------------------------------------------
>
>                 Key: OPENJPA-1668
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1668
>             Project: OpenJPA
>          Issue Type: Bug
>    Affects Versions: 1.0.3, 1.2.2, 2.0.0
>            Reporter: Heath Thomann
>            Assignee: Heath Thomann
>            Priority: Minor
>         Attachments: OPENJPA-1668-1.2.x.patch.txt
>
>
> When setting/overriding the 'DBDictionary.sequenceSQL' value via a property in the persistence.xml file, as follows:
> 	<property name="openjpa.jdbc.DBDictionary" value="db2(sequenceSQL='SELECT SCHEMA AS SEQUENCE_SCHEMA, NAME AS SEQUENCE_NAME FROM CIDB2.SYSSEQUENCES')"/>                                                        
> this value is not used when running DB2 on zOS.  Rather, the 'default for zOS' is used, i.e.: "SELECT SCHEMA AS SEQUENCE_SCHEMA, NAME AS SEQUENCE_NAME FROM SYSIBM.SYSSEQUENCES";.  
> To understand how this is happening, let me describe how 'sequenceSQL' is defined/set at runtime.  First, the ctor of DB2Dictionary is called, and the variable is set to a default:
>         sequenceSQL = "SELECT SEQSCHEMA AS SEQUENCE_SCHEMA, "
>             + "SEQNAME AS SEQUENCE_NAME FROM SYSCAT.SEQUENCES";
> After the DB2Dictionary ctor is called, openJPA assigns to 'sequenceSQL' the value defined in the system property.  So at this point things are all good and the variable is set to what is defined in the prop.  Where things go awry is when the method DB2Dictionary.connectedConfiguration is called.  In the method there is some platform specific code which is executed which overwrites the sequenceSQL value:
>        // platform specific settings
>         switch (db2ServerType) {
>         case  db2ZOSV8xOrLater:
> 		........
>             sequenceSQL = "SELECT SCHEMA AS SEQUENCE_SCHEMA, "
>                 + "NAME AS SEQUENCE_NAME FROM SYSIBM.SYSSEQUENCES";
> Thanks,
> Heath

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (OPENJPA-1668) User's ''DBDictionary.sequenceSQL' setting not being honored on zOS

Posted by "Michael Dick (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/OPENJPA-1668?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Dick updated OPENJPA-1668:
----------------------------------

    Fix Version/s: 1.2.3
                   2.1.0

> User's ''DBDictionary.sequenceSQL' setting not being honored on zOS 
> --------------------------------------------------------------------
>
>                 Key: OPENJPA-1668
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1668
>             Project: OpenJPA
>          Issue Type: Bug
>    Affects Versions: 1.0.3, 1.2.2, 2.0.0
>            Reporter: Heath Thomann
>            Assignee: Heath Thomann
>            Priority: Minor
>             Fix For: 1.2.3, 2.1.0
>
>         Attachments: OPENJPA-1668-1.2.x.patch.txt
>
>
> When setting/overriding the 'DBDictionary.sequenceSQL' value via a property in the persistence.xml file, as follows:
> 	<property name="openjpa.jdbc.DBDictionary" value="db2(sequenceSQL='SELECT SCHEMA AS SEQUENCE_SCHEMA, NAME AS SEQUENCE_NAME FROM CIDB2.SYSSEQUENCES')"/>                                                        
> this value is not used when running DB2 on zOS.  Rather, the 'default for zOS' is used, i.e.: "SELECT SCHEMA AS SEQUENCE_SCHEMA, NAME AS SEQUENCE_NAME FROM SYSIBM.SYSSEQUENCES";.  
> To understand how this is happening, let me describe how 'sequenceSQL' is defined/set at runtime.  First, the ctor of DB2Dictionary is called, and the variable is set to a default:
>         sequenceSQL = "SELECT SEQSCHEMA AS SEQUENCE_SCHEMA, "
>             + "SEQNAME AS SEQUENCE_NAME FROM SYSCAT.SEQUENCES";
> After the DB2Dictionary ctor is called, openJPA assigns to 'sequenceSQL' the value defined in the system property.  So at this point things are all good and the variable is set to what is defined in the prop.  Where things go awry is when the method DB2Dictionary.connectedConfiguration is called.  In the method there is some platform specific code which is executed which overwrites the sequenceSQL value:
>        // platform specific settings
>         switch (db2ServerType) {
>         case  db2ZOSV8xOrLater:
> 		........
>             sequenceSQL = "SELECT SCHEMA AS SEQUENCE_SCHEMA, "
>                 + "NAME AS SEQUENCE_NAME FROM SYSIBM.SYSSEQUENCES";
> Thanks,
> Heath

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.