Justin Thomas 2 Posted January 5, 2022 Share Posted January 5, 2022 Has anyone experienced issues with table naming when moving from 8206 to 8207 using an iSeries Reporting Server Many of our fex procedures are set up with the following syntax: ON TABLE HOLD AS APPPATH/SYNONYM_NAME FORMAT DB2 TABLENAME SCHEMA.TABLE_NAME DROP After upgrading to 8207, with our naming set to Dot(.), we have to use: ON TABLE HOLD AS APPPATH/SYNONYM_NAME FORMAT DB2 TABLENAME SCHEMA/TABLE_NAME DROP in order to get the table written to a schema other than the default. We attempted using: ENGINE DB2 SET NAMING SQL but something with this is causing an error reading from a DB2 in the TABLE FILE statement. Link to comment Share on other sites More sharing options...
Toby Mills Posted January 6, 2022 Share Posted January 6, 2022 Hi Justin I havent tried that out but wondered what error message you get Also this blurb from that Adapter admin manual might be useful: Adapter Administration Release 8207 November 2021 DN4501040.1121 Page 505 Reference: Creating and Updating Db2 Files on IBM i The following information applies to HOLD FORMAT DB2 and procedures that update a Db2 object in a non-journaled collection. While Db2 on IBM i supports CREATE TABLE operations to a non-journaled collection (a library with no journal receivers), Db2 normally considers this a commitment control error and issues an error message. When a HOLD FORMAT DB2 command is issued, the same error condition triggers an error message to the adapter. In response, the adapter creates the table, but does not perform the load step. However, if the server is configured with Db2 as a CLI-based adapter, you can use the ISOLATION setting of NC (No Commit) to prevent Db2 from triggering the error message, thereby enabling the table to load. You can set ISOLATION to NC on a request-by-request basis before issuing HOLD FORMAT DB2: SQL DB2 SET ISOLATION NC Alternatively, you can set the NC option server wide from the Adapter for Db2s Change Settings pane. (To access this pane, click Adapters on the menu bar, right-click the name of the configured adapter, and choose Change Settings from the menu.) After completing this task, revert to the original ISOLATION setting, if appropriate. Maybe your specific error message will give a clue as to where the problem is. Link to comment Share on other sites More sharing options...
Justin Thomas 2 Posted January 6, 2022 Author Share Posted January 6, 2022 Hi Toby, We implemented the ENGINE DB2 SET ISOLATION NC solution while in 8206, and this continues to work in 8207. What happened is that the TABLENAME syntax is no longer working the same. We have everything set up to use Dot(.) naming, but in 8207 this puts a table with the name SCHEMA.TABLE_NAME into our default schema instead of where we want it to go. This worked fine in 8206. In 8207, even though we have the same settings/configuration as 8206, we can only direct the table to a specific schema using SCHEMA/TABLE_NAME. Its strange. Then, when we added ENGINE DB2 SET NAMING SQL we were able write using the Dot(.) naming convention, but were not longer able to read a DB2 table in our TABLE FILE statement (we get a SQLCODE -5106 error and a message saying (FOC 1500) : [42833] Qualified object name TABLE_NAME not valid. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now