×
The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.
 
On 09-Feb-2015 08:40 -0600, RPG List wrote:
I created a SQL table that when I try to add a record to it, I'm
getting the following error:
   The journal specified is used by commitment definition QDBCMTDFN.
  Seems unrelated to RPG; a topic more appropriate for a forum not 
dedicated to a specific language [other than a forum dedicated to the 
SQL] such as the HLL RPG.
  An error is most appropriately identified with a message Identifier 
(MSGID).  Why expect the reader to figure out what that msg is, just to 
help you?  To search for known issues [for which a corrective or 
preventive fix might exist], only untranslated _tokens_ such as Message 
Identifiers are useful.  That is because the message /text/ gets 
translated into numerous languages, and the text can even change from 
one release to another despite being the same installed National 
Language Version (NLV).  Thus the knowing\sharing of only the text of 
the message can approach being useless, with regard to enabling someone 
[the readers of the topic] to assist whoever posts the inquiry.
  Beyond that, the context for the [error] message is helpful to the 
readers [in finding a matching problem description]; the failing request 
[in this case the actual SQL failing statement, which can be inferred to 
be an INSERT] and the details of the messages, and while the [failing] 
SQL request is not in the joblog and may need to be shown as what is 
copied from source and\or debug, the logged messages are generally 
visible with further contextual details [other than the request that 
preceded the messaging] given they are spooled using the LOG(4 0 
*SECLVL).  Even without the message identifier, showing the second level 
text to include the Cause and Recovery might have revealed something to 
the reader that allows them to offer what might be a worthwhile reply 
[rather than simply implying that too little information has been offered].
I specifically set commitment control to *NONE when I created the
table.
  If the error is during an INSERT, what was the COMMIT() specification 
during CREATE TABLE may be unrelated.  However I almost always commit 
all the Data Definition Language (DDL) statements before ever starting 
any Data Management Language (DML) statements, if the DDL ran with 
isolation other than *NONE.
The only field in the file that has a reference elsewhere is in the
pohdr header which has a constraint:
      PoShpTo        Numeric(7)
                     References PShipTo(ShipIndex),
The Pohdr file has commitment control set to *NONE as well.
  The database file [SQL TABLE] can not be properly described as having 
a CmtCtl setting.  The commitment control level is an environment 
setting, not an attribute of the file; the CmtCtl [or isolation] level 
being used is specific to the DDL statements or the DML statements being 
issued.
What am I missing?
  FWiW: Referential Integrity (RI) is implemented with implicit 
commitment control, irrespective of the COMMIT() [Isolation Level] 
established for the SQL statements being processed [by a dynamic 
statement interpreter].  The REFERENCES clause in a CREATE TABLE needs 
to establish RI.  That implicit CmtCtl runs under the System-Defined 
Commit Definition (CMTDFN) named QDBCMTDFN.
  Probably best to create a script of self-contained SQL requests [i.e. 
no reliance on previously-created user-defined objects], that when run 
[e.g. with particular specifications on RUNSQLSTM], will create the 
objects and will re-create the error at the [last included] INSERT 
statement.  Then anyone else with access to a system can issue the same 
Run SQL Statements request using the same source would be likely to 
encounter the same error and perhaps also be able to explain why the 
error is [in]correct.  In this particular scenario, because the SQL can 
implicitly journal, such a script should include establishing the 
journaling environment equivalent to the failing scenario
As an Amazon Associate we earn from qualifying purchases.