<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE messages SYSTEM "messages.dtd">

<!-- 
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at      

http://www.apache.org/licenses/LICENSE-2.0  

Unless required by applicable law or agreed to in writing, software  
distributed under the License is distributed on an "AS IS" BASIS,  
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  
See the License for the specific language governing permissions and  
limitations under the License.
--> 


<!-- 
This file contains all of the internationalized messages used by
the Derby engine. For each message, we provide the following
information:

  * Name of the message - for most messages, this encodes a SQLState
  * Message text returned to the user
  * Optional comments to help translators understand how the message is used
  * Human-readable names for message arguments

Message argument names should be listed in numeric order rather than
position order. So, for the following message...

    "Table {1} in schema {0} cannot be indexed."

...the order of arguments should be

    schemaName
    tableName

For further guidance on writing messages with human-readable argument
names, please see the following page on the Derby website:

  http://db.apache.org/derby/manuals/messages.html

This file is used to generate the following files when Derby is built:

  * messages_en.properties - the English message text shipped with Derby
  * rrefexcept71493.dita - the source for the table of SQLStates in the Derby Reference Guide.

See the accompanying messages.dtd for an explanation of this xml grammar.

Note of caution: 
  If you change the number of parameters for an existing message, please
also adjust the translations, or remove the message from the translated files
so the product will default to showing a correct English message. -->

<messages>

<!-- 
This section contains all of the messages which have SQLStates. These
are the message which turn up in SQLExceptions returned by the Derby
JDBC drivers. These messages are documented in the Derby Reference
Guide.
-->

    <section>
        <desc>Messages with SQLStates, documented in the Derby Reference Guide</desc>
        <documented/>


        <family>
            <title>Class 01: Warning</title>

            <msg>
                <name>01001</name>
                <text>An attempt to update or delete an already deleted row was made: No row was updated or deleted.</text>
            </msg>

            <msg>
                <name>01003</name>
                <text>Null values were eliminated from the argument of a column function.</text>
            </msg>

            <msg>
                <name>01006</name>
                <text>Privilege not revoked from user {0}.</text>
                <arg>authorizationID</arg>
            </msg>

            <msg>
                <name>01007</name>
                <text>Role {0} not revoked from authentication id {1}.</text>
                <arg>authorizationID</arg>
                <arg>authorizationID</arg>
            </msg>

            <msg>
                <name>01008</name>
                <text>WITH ADMIN OPTION of role {0} not revoked from authentication id {1}.</text>
                <arg>authorizationID</arg>
                <arg>authorizationID</arg>
            </msg>

            <msg>
                <name>01009</name>
                <text>Generated column {0} dropped from table {1}.</text>
                <arg>columnName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>0100E</name>
                <text>Attempt to return too many result sets. </text>
            </msg>

            <msg>
                <name>01500</name>
                <text>The constraint {0} on table {1} has been dropped.</text>
                <arg>constraintName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>01501</name>
                <text>The view {0} has been dropped.</text>
                <arg>viewName</arg>
            </msg>

            <msg>
                <name>01502</name>
                <text>The trigger {0} on table {1} has been dropped.</text>
                <arg>triggerName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>01503</name>
                <text>The column {0} on table {1} has been modified by adding a not null constraint.</text>
                <arg>columnName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>01504</name>
                <text>'{0}' index not created because it is a duplicate of an existing index: '{1}'.</text>
                <arg>newIndexName</arg>
                <arg>existingIndexName</arg>
            </msg>

            <msg>
                <name>01505</name>
                <text>The value {0} may be truncated.</text>
                <arg>dataValue</arg>
            </msg>

            <msg>
                <name>01522</name>
                <text>The newly defined synonym '{0}' resolved to the object '{1}' which is currently undefined.</text>
                <arg>synonymName</arg>
                <arg>objectName</arg>
            </msg>

            <msg>
                <name>01J01</name>
                <text>Database '{0}' not created, connection made to existing database instead.</text>
                <arg>databaseName</arg>
            </msg>

            <msg>
                <name>01J02</name>
                <text>Scroll sensitive cursors are not currently implemented.</text>
            </msg>

            <msg>
                <name>01J04</name>
                <text>The class '{0}' for column '{1}' does not implement java.io.Serializable or java.sql.SQLData. Instances must implement one of these interfaces to allow them to be stored.</text>
                <arg>className</arg>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>01J05</name>
                <text>Database upgrade succeeded. The upgraded database is now ready for use. Revalidating stored prepared statements failed. See next exception for details of failure.</text>
            </msg>

            <msg>
                <name>01J06</name>
                <text>ResultSet not updatable. Query does not qualify to generate an updatable ResultSet.</text>
            </msg>

            <msg>
                <name>01J07</name>
                <text>ResultSetHoldability restricted to ResultSet.CLOSE_CURSORS_AT_COMMIT for a global transaction.</text>
            </msg>

            <msg>
                <name>01J08</name>
                <text>Unable to open resultSet type {0}. ResultSet type {1} opened.</text>
                <arg>resultSetType</arg>
                <arg>resultSetType</arg>
            </msg>

            <msg>
                <name>01J10</name>
                <text>Scroll sensitive result sets are not supported by server; remapping to forward-only cursor</text>
            </msg>

            <msg>
                <name>01J12</name>
                <text>Unable to obtain message text from server. See the next exception. The stored procedure SYSIBM.SQLCAMESSAGE is not installed on the server. Please contact your database administrator.</text>
            </msg>

            <msg>
                <name>01J13</name>
                <text>Number of rows returned ({0}) is too large to fit in an integer; the value returned will be truncated.</text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>01J14</name>
                <text>SQL authorization is being used without first enabling authentication.</text>
            </msg>

            <msg>
                <name>01J15</name>
                <text>Your password will expire in {0} day(s). Please use the SYSCS_UTIL.SYSCS_MODIFY_PASSWORD procedure to change your password in database '{1}'.</text>
                <arg>remainingDays</arg>
                <arg>databaseName</arg>
            </msg>

            <msg>
                <name>01J16</name>
                <text>Your password is stale. To protect the database, you should update your password soon. Please use the SYSCS_UTIL.SYSCS_MODIFY_PASSWORD procedure to change your password in database '{0}'.</text>
                <arg>databaseName</arg>
            </msg>

            <msg>
                <name>01J17</name>
                <text>You cannot encrypt, re-encrypt, or decrypt a database which is already booted. You must shutdown the database before attempting these operations.</text>
            </msg>

        </family>

        <family>
            <title>Class 07: Dynamic SQL Error</title>

            <msg>
                <name>07000</name>
                <text>At least one parameter to the current statement is uninitialized.</text>
            </msg>

            <msg>
                <name>07004</name>
                <text>Parameter {0} is an {1} procedure parameter and must be registered with CallableStatement.registerOutParameter before execution.</text>
                <arg>parameterName</arg>
                <arg>procedureName</arg>
            </msg>

            <msg>
                <name>07009</name>
                <text>No input parameters.</text>
            </msg>

        </family>


        <family>
            <title>Class 08: Connection Exception</title>

            <msg>
                <name>08000</name>
                <text>Connection closed by unknown interrupt.</text>
            </msg>

            <msg>
                <name>08001.C.10</name>
                <text>A connection could not be established because the security token is larger than the maximum allowed by the network protocol.</text>
            </msg>

            <msg>
                <name>08001.C.11</name>
                <text>A connection could not be established because the user id has a length of zero or is larger than the maximum allowed by the network protocol.</text>
            </msg>

            <msg>
                <name>08001.C.12</name>
                <text>A connection could not be established because the password has a length of zero or is larger than the maximum allowed by the network protocol.</text>
            </msg>
			
			<msg>
                <name>08001.C.13</name>
                <text>A connection could not be established because the external name (EXTNAM) has a length of zero or is larger than the maximum allowed by the network protocol.</text>
            </msg>
			
			<msg>
                <name>08001.C.14</name>
                <text>A connection could not be established because the server name (SRVNAM) has a length of zero or is larger than the maximum allowed by the network protocol.</text>
            </msg>

            <msg>
                <name>08001.C.1</name>
                <text>Required Derby DataSource property {0} not set.</text>
                <arg>propertyName</arg>
            </msg>

            <msg>
                <name>08001.C.2</name>
                <text>{0} : Error connecting to server {1} on port {2} with message {3}.</text>
                <arg>error</arg>
                <arg>serverName</arg>
                <arg>portNumber</arg>
                <arg>messageText</arg>
            </msg>

            <msg>
                <name>08001.C.3</name>
                <text>SocketException: '{0}'</text>
                <arg>error</arg>
            </msg>

            <msg>
                <name>08001.C.4</name>
                <text>Unable to open stream on socket: '{0}'.</text>
                <arg>error</arg>
            </msg>

            <msg>
                <name>08001.C.5</name>
                <text>User id length ({0}) is outside the range of 1 to {1}.</text>
                <arg>number</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>08001.C.6</name>
                <text>Password length ({0}) is outside the range of 1 to {1}.</text>
                <arg>length</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>08001.C.7</name>
                <text>User id can not be null.</text>
            </msg>

            <msg>
                <name>08001.C.8</name>
                <text>Password can not be null.</text>
            </msg>

            <msg>
                <name>08001.C.9</name>
                <text>A connection could not be established because the database name '{0}' is larger than the maximum length allowed by the network protocol.</text>
                <arg>databaseName</arg>
            </msg>

            <msg>
                <name>08003</name>
                <text>No current connection.</text>
            </msg>

            <msg>
                <name>08003.C.1</name>
                <text>getConnection() is not valid on a closed PooledConnection.</text>
            </msg>

            <msg>
                <name>08003.C.2</name>
                <text>Lob method called after connection was closed</text>
            </msg>

            <msg>
                <name>08003.C.3</name>
                <text>The underlying physical connection is stale or closed.</text>
            </msg>

            <msg>
                <name>08004</name>
                <text>Connection refused : {0}</text>
                <arg>connectionName</arg>
            </msg>

            <msg>
                <name>08004.C.1</name>
                <text>Connection authentication failure occurred.  Reason: {0}.</text>
                <arg>reasonText</arg>
            </msg>

            <msg>
                <name>08004.C.2</name>
                <text>The connection was refused because the database {0} was not found.</text>
                <arg>databaseName</arg>
            </msg>

            <msg>
                <name>08004.C.3</name>
                <text>Database connection refused.</text>
            </msg>

            <msg>
                <name>08004.C.4</name>
                <text>User '{0}' cannot shut down database '{1}'. Only the database owner can perform this operation.</text>
                <arg>authorizationID</arg>
                <arg>databaseName</arg>
            </msg>

            <msg>
                <name>08004.C.5</name>
                <text>User '{0}' cannot (re)encrypt database '{1}'. Only the database owner can perform this operation.</text>
                <arg>authorizationID</arg>
                <arg>databaseName</arg>
            </msg>

            <msg>
                <name>08004.C.6</name>
                <text>User '{0}' cannot upgrade database '{1}'. Only the database owner can perform this operation.</text>
                <arg>authorizationID</arg>
                <arg>databaseName</arg>
            </msg>

            <msg>
                <name>08004.C.7</name>
                <text>Connection refused to database '{0}' because it is in replication slave mode.</text>
                <arg>databaseName</arg>
            </msg>

            <msg>
                <name>08004.C.8</name>
                <text>User '{0}' cannot issue a replication operation on database '{1}'. Only the database owner can perform this operation.</text>
                <arg>authorizationID</arg>
                <arg>databaseName</arg>
            </msg>

            <msg>
                <name>08004.C.9</name>
                <text>Missing permission for user '{0}' to shutdown system [{1}].</text>
                <arg>authorizationID</arg>
                <arg>exceptionMsg</arg>
            </msg>

            <msg>
                <name>08004.C.10</name>
                <text>Cannot check system permission to create database '{0}' [{1}].</text>
                <arg>databaseName</arg>
                <arg>exceptionMsg</arg>
            </msg>

            <msg>
                <name>08004.C.11</name>
                <text>Missing permission for user '{0}' to create database '{1}' [{2}].</text>
                <arg>authorizationID</arg>
                <arg>databaseName</arg>
                <arg>exceptionMsg</arg>
            </msg>

            <msg>
                <name>08004.C.12</name>
                <text>Connection authentication failure occurred. Either the supplied credentials were invalid, or the database uses a password encryption scheme not compatible with the strong password substitution security mechanism. If this error started after upgrade, refer to the release note for DERBY-4483 for options.</text>
            </msg>

            <msg>
                <name>08004.C.13</name>
                <text>Username or password is null or 0 length.</text>
            </msg>

            <msg>
                <name>08004.C.14</name>
                <text>User '{0}' cannot decrypt database '{1}'. Only the database owner can perform this operation.</text>
                <arg>authorizationID</arg>
                <arg>databaseName</arg>
            </msg>

            <msg>
                <name>08006.C</name>
                <text>A network protocol error was encountered and the connection has been terminated: {0}</text>
		<arg>error</arg>
            </msg>
            <msg>
                <name>08006.C.1</name>
                <text>An error occurred during connect reset and the connection has been terminated.  See chained exceptions for details.</text>
            </msg>
            <msg>
                <name>08006.C.2</name>
                <text> SocketException: '{0}'</text>
                <arg>error</arg>
            </msg>

            <msg>
                <name>08006.C.3</name>
                <text>A communications error has been detected: {0}.</text>
                <arg>error</arg>
            </msg>

            <msg>
                <name>08006.C.4</name>
                <text>An error occurred during a deferred connect reset and the connection has been terminated.  See chained exceptions for details.</text>
            </msg>

            <msg>
                <name>08006.C.5</name>
                <text>Insufficient data while reading from the network - expected a minimum of {0} bytes and received only {1} bytes.  The connection has been terminated.</text>
                <arg>number</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>08006.C.6</name>
                <text>Attempt to fully materialize lob data that is too large for the JVM.  The connection has been terminated.</text>
            </msg>

            <msg>
                <name>08006.C.8</name>
                <text>org.apache.derby.jdbc.EmbeddedDriver is not registered with the JDBC driver manager</text>
            </msg>

            <msg>
                <name>08006.D</name>
                <text>Database '{0}' shutdown.</text>
                <arg>databaseName</arg>
            </msg>

            <msg>
                <name>08006.D.1</name>
                <text>Database '{0}' dropped.</text>
                <arg>databaseName</arg>
            </msg>

        </family>


        <family>
            <title>Class 0A: Feature not supported</title>

            <msg>
                <name>0A000.S</name>
                <text>Feature not implemented: {0}.</text>
                <arg>featureName</arg>
            </msg>

            <msg>
                <name>0A000.C.6</name>
                <text>The DRDA command {0} is not currently implemented.  The connection has been terminated.</text>
                <arg>commandName</arg>
            </msg>

            <msg>
                <name>0A000.S.1</name>
                <text>JDBC method is not yet implemented.</text>
            </msg>

            <msg>
                <name>0A000.S.2</name>
                <text>JDBC method {0} is not supported by the server. Please upgrade the server.</text>
                <arg>methodName</arg>
            </msg>

            <msg>
                <name>0A000.S.3</name>
                <text>resultSetHoldability property {0} not supported</text>
                <arg>propertyName</arg>
            </msg>

            <msg>
                <name>0A000.S.4</name>
                <text>cancel() not supported by the server.</text>
            </msg>

            <msg>
                <name>0A000.S.5</name>
                <text>Security mechanism '{0}' is not supported.</text>
                <arg>mechanismName</arg>
            </msg>

            <msg>
                <name>0A000.S.7</name>
                <text>The data type '{0}' is not supported.</text>
                <arg>datatypeName</arg>
            </msg>

        </family>


        <family>
            <title>Class 0P: Invalid role specification</title>

            <msg>
                <name>0P000</name>
                <text>Invalid role specification, role does not exist: '{0}'.</text>
                <arg>roleName</arg>
            </msg>

            <msg>
                <name>0P000.S.1</name>
                <text>Invalid role specification, role not granted to current user or PUBLIC: '{0}'.</text>
                <arg>roleName</arg>
            </msg>

        </family>


        <family>
            <title>Class 21: Cardinality Violation</title>

            <msg>
                <name>21000</name>
                <text>Scalar subquery is only allowed to return a single row.</text>
            </msg>

            <msg>
                <name>21000.S.1</name>
                <text>A row in the target table qualifies for more than one DELETE or UPDATE action.</text>
            </msg>

        </family>


        <family>
            <title>Class 22: Data Exception</title>

            <msg>
                <name>22001</name>
                <text>A truncation error was encountered trying to shrink {0} '{1}' to length {2}.</text>
                <arg>dataType</arg>
                <arg>dataValue</arg>
                <arg>length</arg>
            </msg>

            <msg>
                <name>22003</name>
                <text>The resulting value is outside the range for the data type {0}.</text>
                <arg>datatypeName</arg>
            </msg>

            <msg>
                <name>22003.S.1</name>
                <text>Year ({0}) exceeds the maximum '{1}'.</text>
                <arg>year</arg>
                <arg>year</arg>
            </msg>

            <msg>
                <name>22003.S.2</name>
                <text>Decimal may only be up to 31 digits.</text>
            </msg>

            <msg>
                <name>22003.S.3</name>
                <text>Overflow occurred during numeric data type conversion of '{0}' to {1}.</text>
                <arg>datatypeName</arg>
                <arg>datatypeName</arg>
            </msg>

            <msg>
                <name>22003.S.4</name>
                <text>The length ({0}) exceeds the maximum length ({1}) for the data type.</text>
                <arg>number</arg>
                <arg>datatypeName</arg>
            </msg>

            <msg>
                <name>22005.S.1</name>
                <text>Unable to convert a value of type '{0}' to type '{1}' : the encoding is not supported.</text>
                <arg>typeName</arg>
                <arg>typeName</arg>
            </msg>

            <msg>
                <name>22005.S.2</name>
                <text>The required character converter is not available.</text>
            </msg>

            <msg>
                <name>22005.S.3</name>
                <text>Unicode string cannot convert to Ebcdic string</text>
            </msg>

            <msg>
                <name>22005.S.4</name>
                <text>Unrecognized JDBC type. Type: {0}, columnCount: {1}, columnIndex: {2}.</text>
                <arg>typeName</arg>
                <arg>number</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>22005.S.5</name>
                <text>Invalid JDBC type for parameter {0}.</text>
                <arg>parameterName</arg>
            </msg>

            <msg>
                <name>22005.S.6</name>
                <text>Unrecognized Java SQL type {0}.</text>
                <arg>datatypeName</arg>
            </msg>
            
            <msg>
                <name>22005.S.7</name>
                <text>Unicode string cannot convert to UTF-8 string</text>
            </msg>

            <msg>
                <name>22005</name>
                <text>An attempt was made to get a data value of type '{0}' from a data value of type '{1}'.</text>
                <arg>datatypeName</arg>
                <arg>datatypeName</arg>
            </msg>

            <msg>
                <name>22007.S.180</name>
                <text>The string representation of a date/time value is out of range.</text>
            </msg>

            <msg>
                <name>22007.S.181</name>
                <text>The syntax of the string representation of a date/time value is incorrect.</text>
            </msg>

            <msg>
                <name>22008.S</name>
                <text>'{0}' is an invalid argument to the {1} function.</text>
                <arg>argument</arg>
                <arg>functionName</arg>
            </msg>

            <msg>
                <name>2200H.S</name>
                <text>Sequence generator '{0}.{1}' does not cycle. No more values can be obtained from this sequence generator.</text>
                <arg>schemaName</arg>
                <arg>sequenceName</arg>
            </msg>

            <msg>
                <name>2200L</name>
                <text>Values assigned to XML columns must be well-formed Document nodes.</text>
            </msg>

            <msg>
                <name>2200M</name>
                <text>Invalid XML Document: {0}</text>
                <arg>parserError</arg>
            </msg>

            <msg>
                <name>2200V</name>
                <text>Invalid context item for {0} operator; context items must be well-formed Document nodes.</text>
                <arg>operatorName</arg>
            </msg>

            <msg>
                <name>2200W</name>
                <text>XQuery serialization error: Attempted to serialize one or more top-level Attribute nodes.</text>
            </msg>

            <msg>
                <name>22011</name>
                <text>The second or third argument of the SUBSTR function is out of range.</text>
            </msg>

            <msg>
                <name>22011.S.1</name>
                <text>The range specified for the substring with offset {0} and len {1} is out of range for the String: {2}.</text>
                <arg>offset</arg>
                <arg>len</arg>
                <arg>str</arg>
            </msg>
            
            <msg>
                <name>22012</name>
                <text>Attempt to divide by zero.</text>
            </msg>

            <msg>
                <name>22013</name>
                <text>Attempt to take the square root of a negative number, '{0}'.</text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>22014</name>
                <text>The start position for LOCATE is invalid; it must be a positive integer. The index  to start the search from is '{2}'.  The string to search for is '{0}'.  The string to search from is '{1}'. </text>
                <arg>searchString</arg>
                <arg>fromString</arg>
                <arg>startIndex</arg>
            </msg>

            <msg>
                <name>22015</name>
                <text>The '{0}' function is not allowed on the following set of types.  First operand is of type '{1}'.  Second operand is of type '{2}'.  Third operand (start position) is of type '{3}'.</text>
                <arg>functionName</arg>
                <arg>typeName</arg>
                <arg>typeName</arg>
                <arg>typeName</arg>
            </msg>

            <msg>
                <name>22018</name>
                <text>Invalid character string format for type {0}.</text>
                <arg>typeName</arg>
            </msg>

            <msg>
                <name>22019</name>
                <text>Invalid escape sequence, '{0}'. The escape string must be exactly one character. It cannot be a null or more than one character.</text>
                <arg>sequenceName</arg>
            </msg>

			<msg>
				<name>22020</name>
				<text>Invalid trim string, '{0}'. The trim string must be exactly one character or NULL. It cannot be more than one character.</text>
				<arg>string</arg>
			</msg>

			<msg>
                <name>22025</name>
                <text>Escape character must be followed by escape character, '_', or '%'. It cannot be followed by any other character or be at the end of the pattern.</text>
            </msg>

            <msg>
                <name>22027</name>
                <text>The built-in TRIM() function only supports a single trim character.  The LTRIM() and RTRIM() built-in functions support multiple trim characters.</text>
            </msg>

            <msg>
                <name>22028</name>
                <text>The string exceeds the maximum length of {0}.</text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>22501</name>
                <text>An ESCAPE clause of NULL returns undefined results and is not allowed.</text>
            </msg>

            <msg>
                <name>2201X</name>
                <text>Invalid row count for OFFSET, must be >= 0.</text>
            </msg>

            <msg>
                <name>2201W</name>
                <text>Row count for FIRST/NEXT must be >= 1 and row count for LIMIT must be >= 0.</text>
            </msg>

            <msg>
                <name>2201Z</name>
                <text>NULL value not allowed for {0} argument.</text>
                <arg>string</arg>
            </msg>

        </family>


        <family>
            <title>Class 23: Constraint Violation </title>

            <msg>
                <name>23502</name>
                <text>Column '{0}'  cannot accept a NULL value.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>23503</name>
                <text>{2} on table '{1}' caused a violation of foreign key constraint '{0}' for key {3}.  The statement has been rolled back.</text>
                <arg>constraintName</arg>
                <arg>tableName</arg>
                <arg>statementType</arg>
                <arg>keyName</arg>
            </msg>

            <msg>
                <name>23505</name>
                <text>The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by '{0}' defined on '{1}'.</text>
                <arg>indexOrConstraintName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>23506.T.1</name>
                <text>The transaction was aborted because of a deferred constraint violation: Duplicate in unique or primary key constraint identified by '{0}' defined on '{1}'.</text>
                <arg>indexOrConstraintName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>23507.S.1</name>
                <text>Deferred constraint violation: Duplicate in unique or primary key constraint identified by '{0}' defined on '{1}'.</text>
                <arg>indexOrConstraintName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>23513</name>
                <text>The check constraint '{1}' was violated while performing an INSERT or UPDATE on table '{0}'.</text>
                <arg>tableName</arg>
                <arg>constraintName</arg>
            </msg>

            <msg>
                <name>23514.T.1</name>
                <text>The transaction was aborted because of a deferred constraint violation: Check constraint identified by '{0}' defined on {1} as '{2}'.</text>
                <arg>indexOrConstraintName</arg>
                <arg>tableName</arg>
                <arg>constraintText</arg>
            </msg>

            <msg>
                <name>23515.S.1</name>
                <text>Deferred constraint violation: Check constraint identified by '{0}' defined on {1} as '{2}'.</text>
                <arg>indexOrConstraintName</arg>
                <arg>tableName</arg>
                <arg>constraintText</arg>
            </msg>

            <msg>
                <name>23516.T.1</name>
                <text>The transaction was aborted because of a deferred constraint violation: Foreign key '{0}' defined on {1} referencing constraint '{2}' defined on {3}, key '{4}'.</text>
                <arg>indexOrConstraintName</arg>
                <arg>tableName</arg>
                <arg>indexOrConstraintName</arg>
                <arg>tableName</arg>
                <arg>keyName</arg>
            </msg>

            <msg>
                <name>23517.S.1</name>
                <text>Deferred constraint violation: Foreign key constraint '{0}' defined on {1} referencing constraint '{2}' defined on {3}, key '{4}'.</text>
                <arg>indexOrConstraintName</arg>
                <arg>tableName</arg>
                <arg>indexOrConstraintName</arg>
                <arg>tableName</arg>
                <arg>keyName</arg>
            </msg>

        </family>


        <family>
            <title>Class 24: Invalid Cursor State</title>

            <msg>
                <name>24000</name>
                <text>Invalid cursor state - no current row.</text>
            </msg>

            <msg>
                <name>24501.S</name>
                <text>The identified cursor is not open.</text>
            </msg>

        </family>


        <family>
            <title>Class 25: Invalid Transaction State</title>

            <msg>
                <name>25001</name>
                <text>Cannot close a connection while a transaction is still active.</text>
            </msg>

            <msg>
                <name>25001.S.1</name>
                <text>Invalid transaction state: active SQL transaction.</text>
            </msg>

            <msg>
                <name>25501</name>
                <text>Unable to set the connection read-only property in an active transaction.</text>
            </msg>

            <msg>
                <name>25502</name>
                <text>An SQL data change is not permitted for a read-only connection, user or database.</text>
            </msg>

            <msg>
                <name>25503</name>
                <text>DDL is not permitted for a read-only connection, user or database.</text>
            </msg>

            <msg>
                <name>25505</name>
                <text>A read-only user or a user in a read-only database is not permitted to disable read-only mode on a connection.</text>
            </msg>

        </family>


        <family>
            <title>Class 28: Invalid Authorization Specification</title>

            <msg>
                <name>28502</name>
                <text>The user name '{0}' is not valid. </text>
                <arg>authorizationID</arg>
            </msg>

        </family>


        <family>
            <title>Class 2D: Invalid Transaction Termination</title>

            <msg>
                <name>2D521.S.1</name>
                <text>setAutoCommit(true) invalid during global transaction.</text>
            </msg>

            <msg>
                <name>2D521.S.2</name>
                <text>Commit or Rollback invalid for application execution environment. </text>
            </msg>

        </family>


        <family>
            <title>Class 38: External Function Exception</title>

            <msg>
                <name>38000</name>
                <text>The exception '{0}' was thrown while evaluating an expression.</text>
                <arg>exception</arg>
            </msg>

            <msg>
                <name>38001</name>
                <text>The external routine is not allowed to execute SQL statements.</text>
            </msg>

            <msg>
                <name>38002</name>
                <text>The routine attempted to modify data, but the routine was not defined as MODIFIES SQL DATA.</text>
            </msg>

            <msg>
                <name>38004</name>
                <text>The routine attempted to read data, but the routine was not defined as READS SQL DATA.</text>
            </msg>

        </family>


        <family>
            <title>Class 39: External Routine Invocation Exception</title>

            <msg>
                <name>39004</name>
                <text>A NULL value cannot be passed to a method which takes a parameter of primitive type '{0}'.</text>
                <arg>type</arg>
            </msg>

        </family>


        <family>
            <title>Class 3B: Invalid SAVEPOINT</title>

            <msg>
                <name>3B001.S</name>
                <text>SAVEPOINT, {0} does not  exist or is not active in the current transaction.</text>
                <arg>savepointName</arg>
            </msg>

            <msg>
                <name>3B002.S</name>
                <text>The maximum number of savepoints has been reached. </text>
            </msg>

            <msg>
                <name>3B501.S</name>
                <text>A SAVEPOINT with the passed name already exists in the current transaction.</text>
            </msg>

            <msg>
                <name>3B502.S</name>
                <text>A Release or Rollback to Savepoint was specified, but the savepoint does not exist.</text>
            </msg>

        </family>


        <family>
            <title>Class 40: Transaction Rollback</title>

            <msg>
                <name>40001</name>
                <text>A lock could not be obtained due to a deadlock, cycle of locks and waiters is:
{0}. The selected victim is XID : {1}.</text>
                <arg>lockCycle</arg>
                <arg>transactionID</arg>
            </msg>

            <msg>
                <name>40XC0</name>
                <text>Dead statement. This may be caused by catching a transaction severity error inside this statement.</text>
            </msg>

            <msg>
                <name>40XD0</name>
                <text>Container has been closed.</text>
            </msg>

            <msg>
                <name>40XD1</name>
                <text>Container was opened in read-only mode.</text>
            </msg>

            <msg>
                <name>40XD2</name>
                <text>Container {0} cannot be opened; it either has been dropped or does not exist.</text>
                <arg>containerName</arg>
            </msg>

            <msg>
                <name>40XL1</name>
                <text>A lock could not be obtained within the time requested</text>
            </msg>

            <msg>
                <name>40XL1.T.1</name>
                <text>A lock could not be obtained within the time requested.  The lockTable dump is: {0}</text>
                <arg>tableDump</arg>
            </msg>

            <msg>
                <name>40XL2</name>
                <text>Self-deadlock.</text>
            </msg>

            <msg>
                <name>40XT0</name>
                <text>An internal error was identified by RawStore module.</text>
            </msg>

            <msg>
                <name>40XT1</name>
                <text>An exception was thrown during transaction commit.</text>
            </msg>

            <msg>
                <name>40XT2</name>
                <text>An exception was thrown during rollback of a SAVEPOINT.</text>
            </msg>

            <msg>
                <name>40XT4</name>
                <text>An attempt was made to close a transaction that was still active. The transaction has been aborted.</text>
            </msg>

            <msg>
                <name>40XT5</name>
                <text>Exception thrown during an internal transaction.</text>
            </msg>

            <msg>
                <name>40XT6</name>
                <text>Database is in quiescent state, cannot activate transaction.  Please wait for a moment till it exits the quiescent state.</text>
            </msg>

            <msg>
                <name>40XT7</name>
                <text>Operation is not supported in an internal transaction.</text>
            </msg>

            <msg>
                <name>40XT8</name>
                <text>An internal error was identified by RawStore module. Internal state detail from the transaction is as follows: {0}</text>
                <arg>internalTransactionState</arg>
            </msg>

        </family>


        <family>
            <title>Class 42: Syntax Error or Access Rule Violation</title>

            <msg>
                <name>42000</name>
                <text>Syntax error or access rule violation; see additional errors for details.</text>
            </msg>

            <msg>
                <name>42500</name>
                <text>User '{0}' does not have {1} permission on table '{2}'.'{3}'.</text>
                <arg>authorizationID</arg>
                <arg>permissionType</arg>
                <arg>schemaNamet</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42501</name>
                <text>User '{0}' does not have {1} permission on table '{2}'.'{3}' for grant.</text>
                <arg>authorizationID</arg>
                <arg>permissionType</arg>
                <arg>schemaNamet</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42502</name>
                <text>User '{0}' does not have {1} permission on column '{2}' of table '{3}'.'{4}'.</text>
                <arg>authorizationID</arg>
                <arg>permissionType</arg>
                <arg>columnName</arg>
                <arg>schemaName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42503</name>
                <text>User '{0}' does not have {1} permission on column '{2}' of table '{3}'.'{4}' for grant.</text>
                <arg>authorizationID</arg>
                <arg>permissionType</arg>
                <arg>columnName</arg>
                <arg>schemaName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42504</name>
                <text>User '{0}' does not have {1} permission on {2} '{3}'.'{4}'.</text>
                <arg>authorizationID</arg>
                <arg>permissionType</arg>
                <arg>objectName</arg>
                <arg>schemaName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42505</name>
                <text>User '{0}' does not have {1} permission on {2} '{3}'.'{4}' for grant.</text>
                <arg>authorizationID</arg>
                <arg>permissionType</arg>
                <arg>objectName</arg>
                <arg>schemaName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42506</name>
                <text>User '{0}' is not the owner of {1} '{2}'.'{3}'.</text>
                <arg>authorizationID</arg>
                <arg>objectName</arg>
                <arg>schemaName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42507</name>
                <text>User '{0}' can not perform the operation in schema '{1}'.</text>
                <arg>authorizationID</arg>
                <arg>schemaName</arg>
            </msg>

            <msg>
                <name>42508</name>
                <text>User '{0}' can not create schema '{1}'. Only the database owner can issue this statement.</text>
                <arg>authorizationID</arg>
                <arg>schemaName</arg>
            </msg>

            <msg>
                <name>42509</name>
                <text>Specified grant or revoke operation is not allowed on object '{0}'.</text>
                <arg>objectName</arg>
            </msg>

            <msg>
                <name>4250A</name>
                <text>User '{0}' does not have {1} permission on object '{2}'.'{3}'.</text>
                <arg>authorizationID</arg>
                <arg>permissionName</arg>
                <arg>schemaName</arg>
                <arg>objectName</arg>
            </msg>

            <msg>
                <name>4250B</name>
                <text>Invalid database authorization property '{0}={1}'.</text>
                <arg>propertyName</arg>
                <arg>propertyValue</arg>
            </msg>

            <msg>
                <name>4250C</name>
                <text>User(s) '{0}' must not be in both read-only and full-access authorization lists.</text>
                <arg>authorizationID</arg>
            </msg>

            <msg>
                <name>4250D</name>
                <text>Repeated user(s) '{1}' in access list '{0}';</text>
                <arg>listName</arg>
                <arg>authorizationID</arg>
            </msg>

            <msg>
                <name>4250E</name>
                <text>Internal Error: invalid {0} id in statement permission list.</text>
                <arg>authorizationID</arg>
            </msg>

            <msg>
                <name>4251A</name>
                <text>Statement {0} can only be issued by database owner.</text>
                <arg>sqlText</arg>
            </msg>

            <msg>
                <name>4251B</name>
                <text>PUBLIC is reserved and cannot be used as a user identifier or role name.</text>
            </msg>

            <msg>
                <name>4251C</name>
                <text>Role {0} cannot be granted to {1} because this would create a circularity.</text>
                <arg>authorizationID</arg>
                <arg>authorizationID</arg>
            </msg>

            <msg>
                <name>4251D</name>
                <text>Only the database owner can perform this operation.</text>
            </msg>

            <msg>
                <name>4251E</name>
                <text>No one can view the '{0}'.'{1}' column.</text>
                 <arg>tableName</arg>
                 <arg>columnName</arg>
           </msg>

            <msg>
                <name>4251F</name>
                <text>You cannot drop the credentials of the database owner.</text>
           </msg>

            <msg>
                <name>4251G</name>
                <text>Please set derby.authentication.builtin.algorithm to a valid message digest algorithm. The current authentication scheme is too weak to be used by NATIVE authentication.</text>
           </msg>

            <msg>
                <name>4251H</name>
                <text>Invalid NATIVE authentication specification. Please set derby.authentication.provider to a value of the form NATIVE:$credentialsDB or NATIVE:$credentialsDB:LOCAL (at the system level).</text>
           </msg>

            <msg>
                <name>4251I</name>
                <text>Authentication cannot be performed because the credentials database '{0}' does not exist.</text>
                 <arg>databaseName</arg>
           </msg>

            <msg>
                <name>4251J</name>
                <text>The value for the property '{0}' is formatted badly.</text>
                 <arg>propertyName</arg>
           </msg>

            <msg>
                <name>4251K</name>
                <text>The first credentials created must be those of the DBO.</text>
           </msg>

            <msg>
                <name>4251L</name>
                <text>The derby.authentication.provider property specifies '{0}' as the name of the credentials database. This is not a valid name for a database.</text>
                 <arg>dbName</arg>
           </msg>

            <msg>
                <name>42601</name>
                <text>In an ALTER TABLE statement, the column '{0}' has been specified as NOT NULL and either the DEFAULT clause was not specified or was specified as DEFAULT NULL.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42605</name>
                <text>The number of arguments for function '{0}' is incorrect.</text>
                <arg>functionName</arg>
            </msg>

            <msg>
                <name>42606</name>
                <text>An invalid hexadecimal constant starting with '{0}' has been detected.</text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>42610</name>
                <text>All the arguments to the COALESCE/VALUE function cannot be parameters. The function needs at least one argument that is not a parameter.</text>
            </msg>

            <msg>
                <name>42611</name>
                <text>The length, precision, or scale attribute for column, or type mapping '{0}' is not valid. </text>
                <arg>dataType</arg>
            </msg>

            <msg>
                <name>42613</name>
                <text>Multiple or conflicting keywords involving the '{0}' clause are present.</text>
                <arg>clause</arg>
            </msg>

            <msg>
                <name>42621</name>
                <text>A check constraint or generated column that is defined with '{0}' is invalid.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42622</name>
                <text>The name '{0}' is too long. The maximum length is '{1}'.</text>
                <arg>name</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>42734</name>
                <text>Name '{0}' specified in context '{1}' is not unique.</text>
                <arg>name</arg>
                <arg>context</arg>
            </msg>

            <msg>
                <name>42802</name>
                <text>The number of values assigned is not the same as the number of specified or implied columns.</text>
            </msg>

            <msg>
                <name>42803</name>
                <text>An expression containing the column '{0}' appears in the SELECT list and is not part of a GROUP BY clause.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42815.S.713</name>
                <text>The replacement value for '{0}' is invalid.</text>
                <arg>sqlText</arg>
            </msg>

            <msg>
                <name>42815.S.171</name>
                <text>The data type, length or value of arguments '{0}' and '{1}' is incompatible.</text>
                <arg>dataType</arg>
                <arg>dataType</arg>
            </msg>

            <msg>
                <name>42818</name>
                <text>Comparisons between '{0}' and '{1}' are not supported. Types must be comparable. String types must also have matching collation. If collation does not match, a possible solution is to cast operands to force them to the default collation (e.g. SELECT tablename FROM sys.systables WHERE CAST(tablename AS VARCHAR(128)) = 'T1')</text>
                <arg>type</arg>
                <arg>type</arg>
            </msg>

            <msg>
                <name>42820</name>
                <text>The floating point literal '{0}' contains more than 30 characters.</text>
                <arg>string</arg>
            </msg>

            <msg>
                <name>42821</name>
                <text>Columns of type '{0}' cannot hold values of type '{1}'. </text>
                <arg>type</arg>
                <arg>type</arg>
            </msg>

            <msg>
                <name>42824</name>
                <text>An operand of LIKE is not a string, or the first operand is not a column.</text>
            </msg>

            <msg>
                <name>42831</name>
                <text>'{0}' cannot be a column of a primary key or unique key because it can contain null values.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42831.S.1</name>
                <text>'{0}' cannot be a column of a primary key because it can contain null values.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42834</name>
                <text>SET NULL cannot be specified because FOREIGN KEY '{0}'  cannot contain null values.  </text>
                <arg>key</arg>
            </msg>

            <msg>
                <name>42837</name>
                <text>ALTER TABLE '{0}' specified attributes for column '{1}' that are not compatible with the existing column.</text>
                <arg>tableName</arg>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42846</name>
                <text>Cannot convert types '{0}' to '{1}'.</text>
                <arg>type</arg>
                <arg>type</arg>
            </msg>

            <msg>
                <name>42877</name>
                <text>A qualified column name '{0}' is not allowed in the ORDER BY clause.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42878</name>
                <text>The ORDER BY clause of a SELECT UNION statement only supports unqualified column references and column position numbers. Other expressions are not currently supported.</text>
            </msg>

            <msg>
                <name>42879</name>
                <text>The ORDER BY clause may not contain column '{0}', since the query specifies DISTINCT and that column does not appear in the query result.</text>
                <arg>columnName</arg>
            </msg>
            <msg>
                <name>4287A</name>
                <text>The ORDER BY clause may not specify an expression, since the query specifies DISTINCT.</text>
            </msg>

            <msg>
                <name>4287B</name>
                <text>In this context, the ORDER BY clause may only specify a column number.</text>
            </msg>


            <msg>
                <name>42884</name>
                <text>No authorized routine named '{0}' of type '{1}' having compatible arguments was found.</text>
                <arg>routineName</arg>
                <arg>type</arg>
            </msg>

            <msg>
                <name>42886</name>
                <text>'{0}' parameter '{1}' requires a parameter marker '?'.</text>
                <arg>parameterMode</arg>
                <arg>parameterName</arg>
            </msg>

            <msg>
                <name>42894</name>
                <text>DEFAULT value or IDENTITY attribute value is not valid for column '{0}'.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>428C1</name>
                <text>Only one identity column is allowed in a table.</text>
            </msg>

            <msg>
                <name>428EK</name>
                <text>The qualifier for a declared global temporary table name must be SESSION.</text>
            </msg>

            <msg>
                <name>42903</name>
                <text>Invalid use of an aggregate function.</text>
            </msg>

            <msg>
                <name>42908</name>
                <text>The CREATE VIEW statement does not include a column list.</text>
            </msg>

            <msg>
                <name>42909</name>
                <text>The CREATE TABLE statement does not include a column list.</text>
            </msg>

            <msg>
                <name>42915</name>
                <text>Foreign  Key '{0}' is invalid for the reason which follows: '{1}'. </text>
                <arg>key</arg>
                <arg>detailedReason</arg>
            </msg>

            <msg>
                <name>42916</name>
                <text>Synonym '{0}' cannot be created for '{1}' as it would result in a circular synonym chain.</text>
                <arg>synonym2</arg>
                <arg>synonym1</arg>
            </msg>

            <msg>
                <name>42939</name>
                <text>An object cannot be created with the schema name '{0}'.</text>
                <arg>schemaNamet</arg>
            </msg>

            <msg>
                <name>4293A</name>
                <text>A role cannot be created with the name '{0}', the SYS prefix is reserved.</text>
                <arg>authorizationID</arg>
            </msg>

            <msg>
                <name>42962</name>
                <text>Long column type column or parameter '{0}' not permitted in declared global temporary tables or procedure definitions. </text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42995</name>
                <text>The requested function does not apply to global temporary tables.</text>
            </msg>

            <msg>
                <name>42X01</name>
                <text>Syntax error: {0}.</text>
                <arg>error</arg>
            </msg>

            <msg>
                <name>42X02</name>
                <text>{0}.</text>
                <arg>parserException</arg>
            </msg>

            <msg>
                <name>42X03</name>
                <text>Column name '{0}' is in more than one table in the FROM list.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42X04</name>
                <text>Column '{0}' is either not in any table in the FROM list or appears within a join specification and is outside the scope of the join specification or appears in a HAVING clause and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE  statement then '{0}' is not a column in the target table.</text>
                <arg>columnName</arg>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42X05</name>
                <text>Table/View '{0}' does not exist.</text>
                <arg>objectName</arg>
            </msg>

            <msg>
                <name>42X06</name>
                <text>Too many result columns specified for table '{0}'.</text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42X07</name>
                <text>Null is only allowed in a VALUES clause within an INSERT statement.</text>
            </msg>

            <msg>
                <name>42X08</name>
                <text>The constructor for class '{0}' cannot be used as an external virtual table because the class does not implement '{1}'. </text>
                <arg>className</arg>
                <arg>constructorName</arg>
            </msg>

            <msg>
                <name>42X09</name>
                <text>The table or alias name '{0}' is used more than once in the FROM list.</text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42X10</name>
                <text>'{0}' is not an exposed table name in the scope in which it appears.</text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42X12</name>
                <text>Column name '{0}' appears more than once in the CREATE TABLE statement.  </text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42X13</name>
                <text>Column name '{0}' appears more than once times in the column list of an INSERT statement. </text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42X14</name>
                <text>'{0}' is not a column in table or VTI '{1}'.</text>
                <arg>columnName</arg>
                <arg>tableOrVTIName</arg>
            </msg>

            <msg>
                <name>42X15</name>
                <text>Column name '{0}' appears in a statement without a FROM list.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42X16</name>
                <text>Column name '{0}' appears multiple times in the SET clause of an UPDATE statement.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42X17</name>
                <text>In the Properties list of a FROM clause, the value '{0}' is not valid as a joinOrder specification. Only the values FIXED and UNFIXED are valid.  </text>
                <arg>joinOrder</arg>
            </msg>

            <msg>
                <name>42X19.S.1</name>
                <text>The WHERE, WHEN or HAVING clause or CHECK CONSTRAINT definition is a '{0}' expression.  It must be a BOOLEAN expression.</text>
                <arg>dataType</arg>
            </msg>

            <msg>
                <name>42X19.S.2</name>
                <text>The WHERE or HAVING clause or CHECK CONSTRAINT definition is an untyped parameter expression.  It must be a BOOLEAN expression.</text>
            </msg>

            <msg>
                <name>42X20</name>
                <text>Syntax error; integer literal expected.</text>
            </msg>

            <msg>
                <name>42X23</name>
                <text>Cursor {0} is not updatable.</text>
                <arg>cursorName</arg>
            </msg>

			<msg>
				<name>42X24</name>
				<text>Column {0} is referenced in the HAVING clause but is not in the GROUP BY list.</text>
				<arg>columnName</arg>
			</msg>
			
            <msg>
                <name>42X25</name>
                <text>The '{0}' function is not allowed on the '{1}' type.</text>
                <arg>functionName</arg>
                <arg>1</arg>
            </msg>

            <msg>
                <name>42X26</name>
                <text>The class '{0}' for column '{1}' does not exist or is inaccessible. This can happen if the class is not public.</text>
                <arg>className</arg>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42X28</name>
                <text>Delete table '{0}' is not target of cursor '{1}'.</text>
                <arg>tableName</arg>
                <arg>cursorName</arg>
            </msg>

            <msg>
                <name>42X29</name>
                <text>Update table '{0}' is not the target of cursor '{1}'.</text>
                <arg>tableName</arg>
                <arg>cursorName</arg>
            </msg>

            <msg>
                <name>42X30</name>
                <text>Cursor '{0}' not found. Verify that autocommit is off.</text>
                <arg>cursorName</arg>
            </msg>

            <msg>
                <name>42X31</name>
                <text>Column '{0}' is not in the FOR UPDATE list of cursor '{1}'.</text>
                <arg>columnName</arg>
                <arg>cursorName</arg>
            </msg>

            <msg>
                <name>42X32</name>
                <text>The number of columns in the derived column list must match the number of columns in table '{0}'.</text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42X33</name>
                <text>The derived column list contains a duplicate column name '{0}'.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42X34</name>
                <text>There is a ? parameter in the select list.  This is not allowed.</text>
            </msg>

            <msg>
                <name>42X35</name>
                <text>It is not allowed for both operands of '{0}' to be ? parameters.</text>
                <arg>operatorName</arg>
            </msg>

            <msg>
                <name>42X36</name>
                <text>The '{0}' operator is not allowed to take a ? parameter as an operand.</text>
                <arg>operatorName</arg>
            </msg>

            <msg>
                <name>42X37</name>
                <text>The unary '{0}' operator is not allowed on the '{1}' type.</text>
                <arg>operatorName</arg>
                <arg>type</arg>
            </msg>

            <msg>
                <name>42X38</name>
                <text>'SELECT *' only allowed in EXISTS and NOT EXISTS subqueries.</text>
            </msg>

            <msg>
                <name>42X39</name>
                <text>Subquery is only allowed to return a single column.</text>
            </msg>

            <msg>
                <name>42X40</name>
                <text>A NOT statement has an operand that is not boolean . The operand of NOT must evaluate to TRUE, FALSE, or UNKNOWN. </text>
            </msg>

            <msg>
                <name>42X41</name>
                <text>In the Properties clause of a FROM list, the property '{0}' is not valid (the property was being set to '{1}'). </text>
                <arg>propertyName</arg>
                <arg>propertyValue</arg>
            </msg>

            <msg>
                <name>42X42</name>
                <text>Correlation name not allowed for column '{0}' because it is part of the FOR UPDATE list.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42X43</name>
                <text>The ResultSetMetaData returned for the class/object '{0}' was null. In order to use this class as an external virtual table, the ResultSetMetaData cannot be null. </text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>42X44</name>
                <text>Invalid length '{0}' in column specification.</text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>42X45</name>
                <text>{0} is an invalid type for argument number {1} of {2}.</text>
                <arg>dataType</arg>
                <arg>argumentNumber</arg>
                <arg>operatorName</arg>
            </msg>

            <msg>
                <name>42X46</name>
                <text>There are multiple functions named '{0}'. Use the full signature or the specific name.</text>
                <arg>functionName</arg>
            </msg>

            <msg>
                <name>42X47</name>
                <text>There are multiple procedures named '{0}'. Use the full signature or the specific name.</text>
                <arg>procedureName</arg>
            </msg>

            <msg>
                <name>42X48</name>
                <text>Value '{1}' is not a valid precision for {0}.</text>
                <arg>dataType</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>42X49</name>
                <text>Value '{0}' is not a valid integer literal.</text>
                <arg>invalidNumber</arg>
            </msg>

            <msg>
                <name>42X50</name>
                <text>No method was found that matched the method call {0}.{1}({2}), tried all combinations of object and primitive types and any possible type conversion for any  parameters the method call may have. The method might exist but it is not public and/or static, or the parameter types are not method invocation convertible.</text>
                <arg>className</arg>
                <arg>methodName</arg>
                <arg>parameterTypes</arg>
            </msg>

            <msg>
                <name>42X51</name>
                <text>The class '{0}' does not exist or is inaccessible. This can happen if the class is not public.</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>42X52</name>
                <text>Calling  method ('{0}') using a receiver of the Java primitive type '{1}' is not allowed.</text>
                <arg>methodName</arg>
                <arg>type</arg>
            </msg>

            <msg>
                <name>42X53</name>
                <text>The LIKE predicate can only have 'CHAR' or 'VARCHAR' operands. Type '{0}' is not permitted.</text>
                <arg>type</arg>
            </msg>

            <msg>
                <name>42X54</name>
                <text>The Java method '{0}' has a ? as a receiver.  This is not allowed.</text>
                <arg>methodName</arg>
            </msg>

            <msg>
                <name>42X55</name>
                <text>Table name '{1}' should be the same as '{0}'.</text>
                <arg>tableName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42X56</name>
                <text>The number of columns in the view column list does not match the number of columns in the underlying query expression in the view definition for '{0}'.</text>
                <arg>viewName</arg>
            </msg>

            <msg>
                <name>42X57</name>
                <text>The getColumnCount() for external virtual table '{0}' returned an invalid value '{1}'.  Valid values are greater than or equal to 1. </text>
                <arg>tableName</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>42X58</name>
                <text>The number of columns on the left and right sides of the {0} must be the same.</text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42X59</name>
                <text>The number of columns in each VALUES constructor must be the same.</text>
            </msg>

            <msg>
                <name>42X60</name>
                <text>Invalid value '{0}' for insertMode property specified for table '{1}'.</text>
                <arg>insertMode</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42X61</name>
                <text>Types '{0}' and '{1}' are not {2} compatible.</text>
                <arg>dataType</arg>
                <arg>dataType</arg>
                <arg>sqlOperator</arg>
            </msg>

            <msg>
                <name>42X62</name>
                <text>'{0}' is not allowed in the '{1}' schema.</text>
                <arg>sqlText</arg>
                <arg>schemaName</arg>
            </msg>

            <msg>
                <name>42X63</name>
                <text>The USING clause did not return any results. No parameters can be set. </text>
            </msg>

            <msg>
                <name>42X64</name>
                <text>In the Properties list, the invalid value '{0}' was specified for the useStatistics property. The only valid values are TRUE or FALSE. </text>
                <arg>propertyValue</arg>
            </msg>

            <msg>
                <name>42X65</name>
                <text>Index '{0}' does not exist.</text>
                <arg>index</arg>
            </msg>

            <msg>
                <name>42X66</name>
                <text>Column name '{0}' appears more than once in the CREATE INDEX statement.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42X68</name>
                <text>No field '{0}' was found belonging to class '{1}'.  It may be that the field exists, but it is not public, or that the class does not exist or is not public.</text>
                <arg>fieldName</arg>
                <arg>className</arg>
            </msg>

            <msg>
                <name>42X69</name>
                <text>It is not allowed to reference a field ('{0}') using a referencing expression of the Java primitive type '{1}'.</text>
                <arg>fieldName</arg>
                <arg>type</arg>
            </msg>

            <msg>
                <name>42X70</name>
                <text>The number of columns in the table column list does not match the number of columns in the underlying query expression in the table definition for '{0}'.</text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42X71</name>
                <text>Invalid data type '{0}' for column '{1}'.</text>
                <arg>datatypeName</arg>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42X72</name>
                <text>No static field '{0}' was found belonging to class '{1}'.  The field might exist, but it is not public and/or static, or the class does not exist or the class is not public.  </text>
                <arg>fieldName</arg>
                <arg>className</arg>
            </msg>

            <msg>
                <name>42X73</name>
                <text>Method resolution for signature {0}.{1}({2}) was ambiguous. (No single maximally specific method.)</text>
                <arg>className</arg>
                <arg>methodName</arg>
                <arg>parameterTypes</arg>
            </msg>

            <msg>
                <name>42X74</name>
                <text>Invalid CALL statement syntax.</text>
            </msg>

            <msg>
                <name>42X75</name>
                <text>No constructor was found with the signature {0}({1}).  It may be that the parameter types are not method invocation convertible.</text>
                <arg>className</arg>
                <arg>parameterTypes</arg>
            </msg>

            <msg>
                <name>42X76</name>
                <text>At least one column, '{0}', in the primary key being added is nullable. All columns in a primary key must be non-nullable.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42X77</name>
                <text>Column position '{0}' is out of range for the query expression.</text>
                <arg>columnPosition</arg>
            </msg>

            <msg>
                <name>42X78</name>
                <text>Column '{0}' is not in the result of the query expression.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42X79</name>
                <text>Column name '{0}' appears more than once in the result of the query expression.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42X80</name>
                <text>VALUES clause must contain at least one element. Empty elements are not allowed. </text>
            </msg>

            <msg>
                <name>42X81</name>
                <text>A query expression must return at least one column.</text>
            </msg>

            <msg>
                <name>42X82</name>
                <text>The USING clause returned more than one row. Only single-row ResultSets are permissible.</text>
            </msg>

            <msg>
                <name>42X84</name>
                <text>Index '{0}' was created to enforce constraint '{1}'.  It can only be dropped by dropping the constraint.</text>
                <arg>index</arg>
                <arg>constraintName</arg>
            </msg>

            <msg>
                <name>42X85</name>
                <text>Constraint '{0}'is required to be in the same schema as table '{1}'.</text>
                <arg>constraintName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42X86</name>
                <text>ALTER TABLE failed. There is no constraint '{0}' on table '{1}'. </text>
                <arg>constraintName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42X87</name>
                <text>At least one result expression (THEN or ELSE) of the CASE expression must have a known type.</text>
            </msg>

            <msg>
                <name>42X88</name>
                <text>A conditional has a non-Boolean operand. The operand of a conditional must evaluate to TRUE, FALSE, or UNKNOWN.  </text>
            </msg>

            <msg>
                <name>42X89</name>
                <text>Types '{0}' and '{1}' are not type compatible. Neither type is assignable to the other type.  </text>
                <arg>type</arg>
                <arg>type</arg>
            </msg>

            <msg>
                <name>42X90</name>
                <text>More than one primary key constraint specified for table '{0}'.</text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42X91</name>
                <text>Constraint name '{0}' appears more than once in the CREATE TABLE statement. </text>
                <arg>constraintName</arg>
            </msg>

            <msg>
                <name>42X92</name>
                <text>Column name '{0}' appears more than once in a constraint's column list.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42X93</name>
                <text>Table '{0}' contains a constraint definition with column '{1}' which is not in the table.</text>
                <arg>tableName</arg>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42X94</name>
                <text>{0} '{1}' does not exist.</text>
                <arg>sqlObjectType</arg>
                <arg>objectName</arg>
            </msg>

            <msg>
                <name>42X96</name>
                <text>The database class path contains an unknown jar file '{0}'.</text>
                <arg>fileName</arg>
            </msg>

            <msg>
                <name>42X97</name>
                <text>Conflicting constraint characteristics for constraint.</text>
            </msg>

            <msg>
                <name>42X98</name>
                <text>Parameters are not allowed in a VIEW definition.</text>
            </msg>

            <msg>
                <name>42X99</name>
                <text>Parameters are not allowed in a TABLE definition.</text>
            </msg>

            <msg>
                <name>42XA0</name>
                <text>The generation clause for column '{0}' has data type '{1}', which cannot be assigned to the column's declared data type.</text>
                <arg>columnName</arg>
                <arg>datatypeName</arg>
            </msg>

            <msg>
                <name>42XA1</name>
                <text>The generation clause for column '{0}' contains an aggregate. This is not allowed.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42XA2</name>
                <text>'{0}' cannot appear in a Generation Clause because it may return unreliable results.</text>
                <arg>sqlObjectName</arg>
            </msg>

            <msg>
                <name>42XA3</name>
                <text>You may not override the value of generated column '{0}'.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42XA4</name>
                <text>The generation clause for column '{0}' references other generated columns. This is not allowed.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42XA5</name>
                <text>Routine '{0}' may issue SQL and therefore cannot appear in this context.</text>
                <arg>routineName</arg>
            </msg>

            <msg>
                <name>42XA6</name>
                <text>'{0}' is a generated column. It cannot be part of a foreign key whose referential action for DELETE is SET NULL or SET DEFAULT, or whose referential action for UPDATE is CASCADE.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42XA7</name>
                <text>'{0}' is a generated or identity column. You cannot change its default value.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42XA8</name>
                <text>You cannot rename '{0}' because it is referenced by the generation clause of column '{1}'.</text>
                <arg>columnName</arg>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42XA9</name>
                <text>Column '{0}' needs an explicit datatype. The datatype can be omitted only for columns with generation clauses.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42XAA</name>
                <text>The NEW value of generated column '{0}' is mentioned in the BEFORE action of a trigger. This is not allowed.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42XAB</name>
                <text>NOT NULL is allowed only if you explicitly declare a datatype.</text>
            </msg>

            <msg>
                <name>42XAC</name>
                <text>'INCREMENT BY' value can not be zero.</text>
            </msg>

             <msg>
                <name>42XAE</name>
                <text>'{0}' value out of range of datatype '{1}'. Must be between '{2}' and '{3}'.</text>
                <arg>argName</arg>
                <arg>datatypeName</arg>
                <arg>minValue</arg>
                <arg>maxValue</arg>
            </msg>

            <msg>
                <name>42XAF</name>
                <text>Invalid 'MINVALUE' value '{0}'. Must be smaller than 'MAXVALUE: {1}'.</text>
                <arg>minValue</arg>
                <arg>maxValue</arg>
            </msg>

            <msg>
                <name>42XAG</name>
                <text>Invalid 'START WITH' value '{0}'. Must be between '{1}' and '{2}'.</text>
                <arg>startValue</arg>
                <arg>minValue</arg>
                <arg>maxValue</arg>
            </msg>

            <msg>
                <name>42XAH</name>
                <text>A NEXT VALUE FOR expression may not appear in many contexts, including WHERE, ON, HAVING, ORDER BY, DISTINCT, CASE, GENERATION, and AGGREGATE clauses as well as WINDOW functions and CHECK CONSTRAINTS.</text>
            </msg>

            <msg>
                <name>42XAI</name>
                <text>The statement references the following sequence more than once: '{0}'.</text>
                <arg>sequenceName</arg>
            </msg>

            <msg>
                <name>42XAJ</name>
                <text>The CREATE SEQUENCE statement has a redundant '{0}' clause.</text>
                <arg>clauseName</arg>
            </msg>

            <msg>
                <name>42XAK</name>
                <text>The target table of a MERGE statement must be a base table.</text>
            </msg>

            <msg>
                <name>42XAL</name>
                <text>The source table of a MERGE statement must be a base table or table function.</text>
            </msg>

            <msg>
                <name>42XAM</name>
                <text>The source and target tables of a MERGE statement may not have the same correlation name.</text>
            </msg>		

	        <msg>
                <name>42XAN</name>
                <text>Constraint characteristics not allowed for NOT NULL.</text>
            </msg>

	        <msg>
                <name>42XAO</name>
                <text>Subqueries are not allowed in the WHEN [ NOT ] MATCHED clauses of MERGE statements.</text>
            </msg>

	        <msg>
                <name>42XAP</name>
                <text>Synonyms are not allowed as the source or target tables of MERGE statements.</text>
            </msg>

	        <msg>
                <name>42XAQ</name>
                <text>The source and target tables of MERGE statements may not have derived column lists.</text>
            </msg>

	        <msg>
                <name>42XAR</name>
                <text>The NEXT VALUE operator may not be used on a system-owned sequence generator.</text>
            </msg>

	        <msg>
                <name>42XAS</name>
                <text>DISTINCT and ALL are not allowed with the VAR_POP, VAR_SAMP, STDDEV_POP, and STDDEV_SAMP aggregates.</text>
            </msg>

		<msg>
		<name>42XAT</name>
		<text>Invalid row identifier scope: '{0}' </text>
		<arg>scope</arg>
	    </msg>

		<msg>
		<name>42XAU</name>
		<text>Invalid column name/names in the input file: '{0}' or Wrong number of header lines</text>
		<arg>columnPattern</arg>
	    </msg>

		<msg>
		<name>42XAV</name>
		<text>Number of header lines should be greater than 0.</text>
	    </msg>

	        <msg>
                <name>42XBA</name>
                <text>The schema, table or column does not exist or the column is not a string type.</text>
            </msg>

	        <msg>
                <name>42XBB</name>
                <text>The table does not have a primary key.</text>
            </msg>

	        <msg>
                <name>42XBC</name>
                <text>Type not supported by the Lucene optional tool: '{0}'</text>
                <arg>typeName</arg>
            </msg>

	        <msg>
                <name>42XBD</name>
                <text>Character not allowed in Derby identifiers used by the Lucene optional tool: '{0}'</text>
                <arg>invalidCharacter</arg>
            </msg>

	        <msg>
                <name>42XBE</name>
                <text>Lucene index does not exist.</text>
            </msg>

	        <msg>
                <name>42XBF</name>
                <text>The schema doesn't exist or the current user isn't the DBO and doesn't own the schema.</text>
            </msg>

	        <msg>
                <name>42XBG</name>
                <text>The luceneSupport tool has already been loaded.</text>
            </msg>

	        <msg>
                <name>42XBH</name>
                <text>The luceneSupport tool has already been unloaded.</text>
            </msg>

	        <msg>
                <name>42XBI</name>
                <text>Cannot drop '{0}' because it is not a directory.</text>
                <arg>directoryName</arg>
            </msg>

	        <msg>
                <name>42XBJ</name>
                <text>Cannot create a Lucene index involving a column named '{0}'. Try renaming the column by declaring a view.</text>
                <arg>columnName</arg>
            </msg>

	        <msg>
                <name>42XBK</name>
                <text>The current Lucene version '{0}' cannot read an index created by Lucene version '{1}'.</text>
                <arg>luceneVersion</arg>
                <arg>indexVersion</arg>
            </msg>

	        <msg>
                <name>42XBL</name>
                <text>Lucene indexes cannot be created in an encrypted database and, conversely, a database containing a Lucene index cannot be encrypted.</text>
            </msg>

	        <msg>
                <name>42XBM</name>
                <text>Argument '{0}' may not be null.</text>
                <arg>argumentName</arg>
            </msg>

	        <msg>
                <name>42XBN</name>
                <text>A field and a key have the same name: '{0}'</text>
                <arg>fieldName</arg>
            </msg>

	        <msg>
                <name>42XBO</name>
                <text>Duplicate or null field name: '{0}'</text>
                <arg>fieldName</arg>
            </msg>

            <msg>
                <name>42Y00</name>
                <text>Class '{0}' does not implement org.apache.derby.iapi.db.AggregateDefinition and thus cannot be used as an aggregate expression.</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>42Y01</name>
                <text>Constraint '{0}' is invalid.</text>
                <arg>constraintName</arg>
            </msg>

            <msg>
                <name>42Y03.S.0</name>
                <text>'{0}' is not recognized as a function or procedure.</text>
                <arg>statement</arg>
            </msg>
            
            <msg>
                <name>42Y03.S.1</name>
                <text>'{0}' is not recognized as a procedure.</text>
                <arg>statement</arg>
            </msg>
            
            <msg>
                <name>42Y03.S.2</name>
                <text>'{0}' is not recognized as a function.</text>
                <arg>statement</arg>
            </msg>

            <msg>
                <name>42Y03.S.3</name>
                <text>'{0}' is a procedure but it is being used as a function.</text>
                <arg>statement</arg>
            </msg>

            <msg>
                <name>42Y03.S.4</name>
                <text>'{0}' is a function but it is being called as a procedure.</text>
                <arg>statement</arg>
            </msg>

            <msg>
                <name>42Y04</name>
                <text>Cannot create a procedure or function with EXTERNAL NAME '{0}' because it is not a list separated by periods. The expected format is &lt;full java path&gt;.&lt;method name&gt;.</text>
                <arg>name</arg>
            </msg>

            <msg>
                <name>42Y05</name>
                <text>There is no Foreign Key named '{0}'.</text>
                <arg>key</arg>
            </msg>

            <msg>
                <name>42Y07</name>
                <text>Schema '{0}' does not exist</text>
                <arg>schemaNamet</arg>
            </msg>

            <msg>
                <name>42Y08</name>
                <text>Foreign key constraints are not allowed on system tables.</text>
            </msg>

            <msg>
                <name>42Y09</name>
                <text>Void methods are only allowed within a CALL statement.</text>
            </msg>

            <msg>
                <name>42Y10</name>
                <text>A table constructor that is not in an INSERT statement has all ? parameters in one of its columns.  For each column, at least one of the rows must have a non-parameter.</text>
            </msg>

            <msg>
                <name>42Y11</name>
                <text>A join specification is required with the '{0}' clause.</text>
                <arg>clauseName</arg>
            </msg>

            <msg>
                <name>42Y12</name>
                <text>The ON clause of a JOIN is a '{0}' expression.  It must be a BOOLEAN expression.</text>
                <arg>expressionType</arg>
            </msg>

            <msg>
                <name>42Y13</name>
                <text>Column name '{0}' appears more than once in the CREATE VIEW statement.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42Y16</name>
                <text>No public static method '{0}' was found in class '{1}'. The method might exist, but it is not public, or it is not static. </text>
                <arg>methodName</arg>
                <arg>className</arg>
            </msg>

            <msg>
                <name>42Y22</name>
                <text>Aggregate {0} cannot operate on type {1}.</text>
                <arg>aggregateType</arg>
                <arg>type</arg>
            </msg>

            <msg>
                <name>42Y23</name>
                <text>Incorrect JDBC type info returned for column {0}.</text>
                <arg>colunmName</arg>
            </msg>

            <msg>
                <name>42Y24</name>
                <text>View '{0}' is not updatable. (Views are currently not updatable.) </text>
                <arg>viewName</arg>
            </msg>

            <msg>
                <name>42Y25</name>
                <text>'{0}' is a system table.  Users are not allowed to modify the contents of this table.</text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42Y26.S.0</name>
                <text>Aggregates are not allowed in the GROUP BY list.</text>
            </msg>

            <msg>
                <name>42Y26.S.1</name>
                <text>Subqueries are not allowed in the GROUP BY list.</text>
            </msg>

            <msg>
                <name>42Y27</name>
                <text>Parameters are not allowed in the trigger action.</text>
            </msg>

            <msg>
                <name>42Y29</name>
                <text>The SELECT list of a non-grouped query contains at least one invalid expression. When the SELECT list contains at least one aggregate then all entries must be valid aggregate expressions.</text>
            </msg>

            <msg>
                <name>42Y30</name>
                <text>The SELECT list of a grouped query contains at least one invalid expression. If a SELECT list has a GROUP BY, the list may only contain valid grouping expressions and valid aggregate expressions.  </text>
            </msg>

            <msg>
                <name>42Y32</name>
                <text>Aggregator class '{0}' for aggregate '{1}' on type {2} does not implement org.apache.derby.iapi.sql.execute.ExecAggregator. </text>
                <arg>className</arg>
                <arg>aggregateName</arg>
                <arg>type</arg>
            </msg>

            <msg>
                <name>42Y33</name>
                <text>Aggregate {0} contains one or more aggregates.</text>
                <arg>aggregateName</arg>
            </msg>

            <msg>
                <name>42Y34</name>
                <text>Column name '{0}' matches more than one result column in table '{1}'.</text>
                <arg>columnName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42Y35</name>
                <text>Column reference '{0}' is invalid. When the SELECT list contains at least one aggregate then all entries must be valid aggregate expressions.  </text>
                <arg>reference</arg>
            </msg>

            <msg>
                <name>42Y36</name>
                <text>Column reference '{0}' is invalid, or is part of an invalid expression.  For a SELECT list with a GROUP BY, the columns and expressions being selected may only contain valid grouping expressions and valid aggregate expressions.</text>
                <arg>reference</arg>
            </msg>

            <msg>
                <name>42Y37</name>
                <text>'{0}' is a Java primitive and cannot be used with this operator.</text>
                <arg>javaTypeName</arg>
            </msg>

            <msg>
                <name>42Y38</name>
                <text>insertMode = replace is not permitted on an insert where the target table, '{0}', is referenced in the SELECT.</text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42Y39</name>
                <text>'{0}' may not appear in a CHECK CONSTRAINT definition because it may return non-deterministic results.</text>
                <arg>sqlObjectName</arg>
            </msg>

            <msg>
                <name>42Y40</name>
                <text>'{0}' appears multiple times in the UPDATE OF column list for trigger '{1}'.</text>
                <arg>columnName</arg>
                <arg>triggerName</arg>
            </msg>

            <msg>
                <name>42Y41</name>
                <text>'{0}' cannot be directly invoked via EXECUTE STATEMENT because it is part of a trigger.</text>
                <arg>storedPreparedStatementName</arg>
            </msg>

            <msg>
                <name>42Y42</name>
                <text>Scale '{1}' is not a valid scale for a {0}.</text>
                <arg>dataType</arg>
                <arg>scaleValue</arg>
            </msg>

            <msg>
                <name>42Y43</name>
                <text>Scale '{0}' is not a valid scale with precision of '{1}'.</text>
                <arg>scaleValue</arg>
                <arg>precision</arg>
            </msg>

            <msg>
                <name>42Y44</name>
                <text>Invalid key '{0}' specified in the Properties list of a FROM list. The case-sensitive keys that are currently supported are '{1}'. </text>
                <arg>key</arg>
                <arg>key</arg>
            </msg>

            <msg>
                <name>42Y45</name>
                <text>VTI '{0}' cannot be bound because it is a special trigger VTI and this statement is not part of a trigger action or WHEN clause.</text>
                <arg>vtiName</arg>
            </msg>

            <msg>
                <name>42Y46</name>
                <text>Invalid Properties list in FROM list.  There is no index '{0}' on table '{1}'.</text>
                <arg>index</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42Y48</name>
                <text>Invalid Properties list in FROM list.  Either there is no named constraint '{0}' on table '{1}' or the constraint does not have a backing index.</text>
                <arg>constraintName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42Y49</name>
                <text>Multiple values specified for property key '{0}'. </text>
                <arg>key</arg>
            </msg>

            <msg>
                <name>42Y50</name>
                <text>Properties list for table '{0}' may contain values for index or for constraint but not both.</text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42Y55</name>
                <text>'{0}' cannot be performed on '{1}' because it does not exist.</text>
                <arg>sqlText</arg>
                <arg>sqlObjectName</arg>
            </msg>

            <msg>
                <name>42Y56</name>
                <text>Invalid join strategy '{0}' specified in Properties list on table '{1}'. The currently supported values for a join strategy are: 'hash' and 'nestedloop'.</text>
                <arg>strategyValue</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42Y58</name>
                <text>NumberFormatException occurred when converting value '{0}' for optimizer override '{1}'.</text>
                <arg>invalidNumber</arg>
                <arg>optimizerOverrideName</arg>
            </msg>

            <msg>
                <name>42Y59</name>
                <text>Invalid value, '{0}', specified for hashInitialCapacity override. Value must be greater than 0.</text>
                <arg>invalidNumber</arg>
            </msg>

            <msg>
                <name>42Y60</name>
                <text>Invalid value, '{0}', specified for hashLoadFactor override. Value must be greater than 0.0 and less than or equal to 1.0.</text>
                <arg>invalidNumber</arg>
            </msg>

            <msg>
                <name>42Y61</name>
                <text>Invalid value, '{0}', specified for hashMaxCapacity override. Value must be greater than 0.</text>
                <arg>invalidNumber</arg>
            </msg>

            <msg>
                <name>42Y62</name>
                <text>'{0}' is not allowed on '{1}' because it is a view.</text>
                <arg>statement</arg>
                <arg>viewName</arg>
            </msg>

            <msg>
                <name>42Y63</name>
                <text>Hash join requires an optimizable equijoin predicate on a column in the selected index or heap.  An optimizable equijoin predicate does not exist on any column in table or index '{0}'. Use the 'index' optimizer override to specify such an index or the heap on table '{1}'.</text>
                <arg>index</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>42Y64</name>
                <text>bulkFetch value of '{0}' is invalid. The minimum value for bulkFetch is 1.</text>
                <arg>invalidNumber</arg>
            </msg>

            <msg>
                <name>42Y65</name>
                <text>bulkFetch is not permitted on '{0}' joins.</text>
                <arg>joinType</arg>
            </msg>

            <msg>
                <name>42Y66</name>
                <text>bulkFetch is not permitted on updatable cursors. </text>
            </msg>

            <msg>
                <name>42Y67</name>
                <text>Schema '{0}' cannot be dropped.</text>
                <arg>schemaNamet</arg>
            </msg>

            <msg>
                <name>42Y69</name>
                <text>No valid execution plan was found for this statement. This may have many causes: 1) you specified a hash join strategy when hash join is not allowed (no optimizable equijoin), 2) you are attempting to join two external virtual tables, each of which references the other, and so the statement cannot be evaluated, 3) you have specified a plan shape which the optimizer would never consider.</text>
            </msg>

            <msg>
                <name>42Y70</name>
                <text>The user specified an illegal join order. This could be caused by a join column from an inner table being passed as a parameter to an external virtual table.</text>
            </msg>

            <msg>
                <name>42Y71</name>
                <text>System function or procedure '{0}' cannot be dropped.</text>
                <arg>procedureName</arg>
            </msg>

            <msg>
                <name>42Y82</name>
                <text>System generated stored prepared statement '{0}' that cannot be dropped using DROP STATEMENT. It is part of a trigger. </text>
                <arg>statement</arg>
            </msg>

            <msg>
                <name>42Y83</name>
                <text>An untyped NULL is not permitted as an argument to aggregate {0}.  Please cast the NULL to a suitable type.</text>
                <arg>aggregateName</arg>
            </msg>

            <msg>
                <name>42Y84</name>
                <text>'{0}' may not appear in a DEFAULT definition.</text>
                <arg>sqlText</arg>
            </msg>

            <msg>
                <name>42Y85</name>
                <text>The DEFAULT keyword is only allowed in a VALUES clause when the VALUES clause appears within an INSERT statement.</text>
            </msg>

            <msg>
                <name>42Y90</name>
                <text>FOR UPDATE is not permitted in this type of statement.  </text>
            </msg>

            <msg>
                <name>42Y91</name>
                <text>The USING clause is not permitted in an EXECUTE STATEMENT for a trigger action.</text>
            </msg>

            <msg>
                <name>42Y92</name>
                <text>{0} triggers may only reference {1} transition variables/tables.</text>
                <arg>sqlKeyword</arg>
                <arg>sqlKeyword</arg>
            </msg>

            <msg>
                <name>42Y93</name>
                <text>Illegal REFERENCING clause: only one name is permitted for each type of transition variable/table.</text>
            </msg>

            <msg>
                <name>42Y94</name>
                <text>An AND or OR has a non-boolean operand. The operands of AND and OR must evaluate to TRUE, FALSE, or UNKNOWN.  </text>
            </msg>

            <msg>
                <name>42Y95</name>
                <text>The '{0}' operator with a left operand type of '{1}' and a right operand type of '{2}' is not supported.</text>
                <arg>operatorName</arg>
                <arg>operandType</arg>
                <arg>operandType</arg>
            </msg>

            <msg>
                <name>42Y97</name>
                <text>Invalid escape character at line '{0}', column '{1}'.</text>
                <arg>lineNumber</arg>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42Y98</name>
                <text>'{0}' may not appear in this context because it may return unreliable results.</text>
                <arg>sqlObjectName</arg>
            </msg>

            <msg>
                <name>42Z02</name>
                <text>Multiple DISTINCT aggregates are not supported at this time.</text>
            </msg>

            <msg>
                <name>42Z07</name>
                <text>Aggregates are not permitted in the ON clause.</text>
            </msg>

            <msg>
                <name>42Z08</name>
                <text>Bulk insert replace is not permitted on '{0}' because it has an enabled trigger ({1}).</text>
                <arg>tableName</arg>
                <arg>triggerName</arg>
            </msg>

            <msg>
                <name>42Z09</name>
                <text>Aggregates are not permitted in the MERGE matching clause.</text>
            </msg>

            <msg>
                <name>42Z15</name>
                <text>Invalid type specified for column '{0}'. The type of a column may not be changed.  </text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42Z16</name>
                <text>Only columns of type VARCHAR, CLOB, and BLOB may have their length altered. </text>
            </msg>

            <msg>
                <name>42Z17</name>
                <text>Invalid length specified for column '{0}'. Length must be greater than the current column length.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42Z18</name>
                <text>Column '{0}' is part of a foreign key constraint '{1}'. To alter the length of this column, you should drop the constraint first, perform the ALTER TABLE, and then recreate the constraint.</text>
                <arg>columnName</arg>
                <arg>constraintName</arg>
            </msg>

            <msg>
                <name>42Z19</name>
                <text>Column '{0}' is being referenced by at least one foreign key constraint '{1}'. To alter the length of this column, you should drop referencing constraints, perform the ALTER TABLE and then recreate the constraints. </text>
                <arg>columnName</arg>
                <arg>constraintName</arg>
            </msg>

            <msg>
                <name>42Z20</name>
                <text>Column '{0}' cannot be made nullable. It is part of a primary key or unique constraint, which cannot have any nullable columns.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42Z20.S.1</name>
                <text>Column '{0}' cannot be made nullable. It is part of a primary key, which cannot have any nullable columns.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42Z21</name>
                <text>Invalid increment specified for identity for column '{0}'. Increment cannot be zero.  </text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42Z22</name>
                <text>Invalid type specified for identity column '{0}'. The only valid types for identity columns are BIGINT, INT and SMALLINT.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42Z23</name>
                <text>Attempt to modify an identity column '{0}'. </text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42Z24</name>
                <text>Overflow occurred in identity value for column '{1}' in table '{0}'.</text>
                <arg>tableName</arg>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42Z25</name>
                <text>Internal Error identity counter. Update was called without arguments with current value \= NULL.</text>
            </msg>

            <msg>
                <name>42Z26</name>
                <text>A column, '{0}', with an identity default cannot be made nullable.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42Z27</name>
                <text>A nullable column, '{0}', cannot be modified to have identity default.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42Z29</name>
                <text>Column '{0}' is not an identity column, so its generation state cannot be changed. </text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42Z50</name>
                <text>Internal Error: Unable to generate code for {0}.</text>
                <arg>queryTreeNodeIdentifier</arg>
            </msg>

            <msg>
                <name>42Z53</name>
                <text>Internal Error: Type of activation to generate for node choice {0} is unknown.</text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>42Z60</name>
                <text>{0} not allowed unless database property {1} has value '{2}'.</text>
                <arg>sqlText</arg>
                <arg>propertyName</arg>
                <arg>propertyValue</arg>
            </msg>

            <msg>
                <name>42Z70</name>
                <text>Binding directly to an XML value is not allowed; try using XMLPARSE.</text>
            </msg>

            <msg>
                <name>42Z71</name>
                <text>XML values are not allowed in top-level result sets; try using XMLSERIALIZE.</text>
            </msg>

            <msg>
                <name>42Z72</name>
                <text>Missing SQL/XML keyword(s) '{0}' at line {1}, column {2}.</text>
                <arg>keywords</arg>
                <arg>lineNumber</arg>
                <arg>columnNumber</arg>
            </msg>

            <msg>
                <name>42Z73</name>
                <text>Invalid target type for XMLSERIALIZE: '{0}'.</text>
                <arg>typeName</arg>
            </msg>

            <msg>
                <name>42Z74</name>
                <text>XML feature not supported: '{0}'.</text>
                <arg>featureName</arg>
            </msg>

            <msg>
                <name>42Z75</name>
                <text>XML query expression must be a string literal.</text>
            </msg>

            <msg>
                <name>42Z76</name>
                <text>Multiple XML context items are not allowed.</text>
            </msg>

            <msg>
                <name>42Z77</name>
                <text>Context item must have type 'XML'; '{0}' is not allowed.</text>
                <arg>dataType</arg>
            </msg>

            <msg>
                <name>42Z79</name>
                <text>Unable to determine the parameter type for XMLPARSE; try using a CAST.</text>
            </msg>

            <msg>
                <name>42Z90</name>
                <text>Class '{0}' does not return an updatable ResultSet.</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>42Z91</name>
                <text>SELECT</text>
                <comment>This is a kind of query fragment, which may or may not appear in certain query contexts.</comment>
            </msg>

            <msg>
                <name>42Z92</name>
                <text>repeatable read</text>
                <comment>A transaction isolation level. See http://en.wikipedia.org/wiki/Isolation_%28database_systems%29</comment>
            </msg>

            <msg>
                <name>42Z93</name>
                <text>Constraints '{0}' and '{1}' have the same set of columns, which is not allowed. </text>
                <arg>constraintName</arg>
                <arg>constraintName</arg>
            </msg>

            <msg>
                <name>42Z97</name>
                <text>Renaming column '{0}' will cause check constraint '{1}' to break.</text>
                <arg>columnName</arg>
                <arg>constraintName</arg>
            </msg>

            <msg>
                <name>42Z99</name>
                <text>String or Hex literal cannot exceed 64K.</text>
            </msg>

            <msg>
                <name>42Z9A</name>
                <text>read uncommitted</text>
                <comment>A transaction isolation level. See http://en.wikipedia.org/wiki/Isolation_%28database_systems%29</comment>
            </msg>

            <msg>
                <name>42Z9D.S.1</name>
                <text>Procedures that modify SQL data are not allowed in BEFORE triggers.</text>
            </msg>

            <msg>
                <name>42Z9D</name>
                <text>'{0}' statements are not allowed in '{1}' triggers.</text>
                <arg>statement</arg>
                <arg>triggerName</arg>
            </msg>

            <msg>
                <name>42Z9E</name>
                <text>Constraint '{0}' is not a {1} constraint.</text>
                <arg>constraintName</arg>
                <arg>constraintType</arg>
            </msg>

            <msg>
                <name>42Z9F</name>
                <text>Too many indexes ({0}) on the table {1}. The limit is {2}.  </text>
                <arg>index</arg>
                <arg>tableName</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>42ZA0</name>
                <text>Statement too complex. Try rewriting the query to remove complexity. Eliminating many duplicate expressions or breaking up the query and storing interim results in a temporary table can often help resolve this error.</text>
            </msg>

            <msg>
                <name>42ZA1</name>
                <text>Invalid SQL in Batch: '{0}'.</text>
                <arg>batch</arg>
            </msg>

            <msg>
                <name>42ZA2</name>
                <text>Operand of LIKE predicate with type {0} and collation {1} is not compatable with LIKE pattern operand with type {2} and collation {3}.</text>
                <arg>dataType</arg>
                <arg>collationType</arg>
                <arg>dataType</arg>
                <arg>collationType</arg>
            </msg>

            <msg>
                <name>42ZA3</name>
                <text>The table will have collation type {0} which is different than the collation of the schema {1} hence this operation is not supported .</text>
                <arg>collationType</arg>
                <arg>schemaName</arg>
            </msg>

            <msg>
                <name>42ZB1</name>
                <text>Parameter style DERBY_JDBC_RESULT_SET is only allowed for table functions.</text>
            </msg>

            <msg>
                <name>42ZB2</name>
                <text>Table functions can only have parameter style DERBY_JDBC_RESULT_SET.</text>
            </msg>

            <msg>
                <name>42ZB3</name>
                <text>XML is not allowed as the datatype of a user-defined aggregate or of a column returned by a table function.</text>
            </msg>

            <msg>
                <name>42ZB4</name>
                <text>'{0}'.'{1}' does not identify a table function.</text>
                <arg>schemaName</arg>
                <arg>functionName</arg>
            </msg>

            <msg>
                <name>42ZB5</name>
                <text>Class '{0}' implements VTICosting but does not provide a public, no-argument constructor.</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>42ZB6</name>
                <text>A scalar value is expected, not a row set returned by a table function.</text>
            </msg>

            <msg>
                <name>42ZB7</name>
                <text>Illegal reference to column '{0}' by a table function or VTI.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>42ZC0</name>
                <text>Window '{0}' is not defined.</text>
                <arg>windowName</arg>
            </msg>

            <msg>
                <name>42ZC1</name>
                <text>Only one window is supported.</text>
            </msg>

            <msg>
                <name>42ZC2</name>
                <text>Window function is illegal in this context: '{0}' clause</text>
                <arg>clauseName</arg>
            </msg>

            <msg>
                <name>42ZC3</name>
                <text>A user defined aggregate may not have the name of an aggregate defined by the SQL Standard or the name of a builtin Derby function having one argument: '{0}'</text>
                <arg>aggregateName</arg>
            </msg>

            <msg>
                <name>42ZC4</name>
                <text>User defined aggregate '{0}'.'{1}' is bound to external class '{2}'. The parameter types of that class could not be resolved.</text>
                <arg>schemaName</arg>
                <arg>aggregateName</arg>
                <arg>className</arg>
            </msg>

            <msg>
                <name>42ZC6</name>
                <text>User defined aggregate '{0}'.'{1}' was declared to have this input Java type: '{2}'. This does not extend the following actual bounding input Java type: '{3}'.</text>
                <arg>schemaName</arg>
                <arg>aggregateName</arg>
                <arg>javaDataType</arg>
                <arg>javaDataType</arg>
            </msg>

            <msg>
                <name>42ZC7</name>
                <text>User defined aggregate '{0}'.'{1}' was declared to have this return Java type: '{2}'. This does not extend the following actual bounding return Java type: '{3}'.</text>
                <arg>schemaName</arg>
                <arg>aggregateName</arg>
                <arg>javaDataType</arg>
                <arg>javaDataType</arg>
            </msg>

            <msg>
                <name>42ZC8</name>
                <text>Implementing class '{0}' for user defined aggregate '{1}'.'{2}' could not be instantiated or was malformed. Detailed message follows: {3}</text>
                <arg>className</arg>
                <arg>schemaName</arg>
                <arg>aggregateName</arg>
                <arg>detailedMessage</arg>
            </msg>

            <msg>
                <name>42ZC9</name>
                <text>A varargs routine must have parameter style DERBY or DERBY_JDBC_RESULT_SET.</text>
            </msg>

            <msg>
                <name>42ZCA</name>
                <text>Parameter style DERBY is only allowed for varargs routines.</text>
            </msg>

            <msg>
                <name>42ZCB</name>
                <text>A varargs procedure may not return result sets.</text>
            </msg>

            <msg>
                <name>42ZCC</name>
                <text>Bad optimizer override. There are {0} row sources in the plan but there should be {1}.</text>
                <arg>rowSourceCountInPlan</arg>
                <arg>actualRowSourceCount</arg>
            </msg>

            <msg>
                <name>42ZCD</name>
                <text>Bad optimizer override. The plan is not a left-deep tree.</text>
            </msg>

            <msg>
                <name>42ZCE</name>
                <text>Bad optimizer override. Row sources have not been resolved.</text>
            </msg>

        </family>


        <family>
            <title>Class 57: DRDA Network Protocol: Execution Failure</title>

            <msg>
                <name>57017.C</name>
                <text>There is no available conversion for the source code page, {0}, to the target code page, {1}.  The connection has been terminated.</text>
                <arg>codePage</arg>
                <arg>codePage</arg>
            </msg>

        </family>


        <family>
            <title>Class 58: DRDA Network Protocol: Protocol Error</title>

            <msg>
                <name>58009.C.10</name>
                <text>Network protocol exception: only one of the VCM, VCS length can be greater than 0.  The connection has been terminated.</text>
            </msg>

            <msg>
                <name>58009.C.11</name>
                <text>The connection was terminated because the encoding is not supported.</text>
            </msg>

            <msg>
                <name>58009.C.12</name>
                <text>Network protocol exception: actual code point, {0}, does not match expected code point, {1}.  The connection has been terminated.</text>
                <arg>codePoint</arg>
                <arg>codePoint</arg>
            </msg>

            <msg>
                <name>58009.C.13</name>
                <text>Network protocol exception: DDM collection contains less than 4 bytes of data.  The connection has been terminated.</text>
            </msg>

            <msg>
                <name>58009.C.14</name>
                <text>Network protocol exception: collection stack not empty at end of same id chain parse.  The connection has been terminated.</text>
            </msg>

            <msg>
                <name>58009.C.15</name>
                <text>Network protocol exception: DSS length not 0 at end of same id chain parse.  The connection has been terminated.</text>
            </msg>

            <msg>
                <name>58009.C.16</name>
                <text>Network protocol exception: DSS chained with same id at end of same id chain parse.  The connection has been terminated.</text>
            </msg>

            <msg>
                <name>58009.C.17</name>
                <text>Network protocol exception: end of stream prematurely reached while reading InputStream, parameter #{0}.  The connection has been terminated.</text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>58009.C.18</name>
                <text>Network protocol exception: invalid FDOCA LID.  The connection has been terminated.</text>
            </msg>

            <msg>
                <name>58009.C.19</name>
                <text>Network protocol exception: SECTKN was not returned.  The connection has been terminated.</text>
            </msg>

            <msg>
                <name>58009.C.20</name>
                <text>Network protocol exception: only one of NVCM, NVCS can be non-null.  The connection has been terminated.</text>
            </msg>

            <msg>
                <name>58009.C.21</name>
                <text>Network protocol exception: SCLDTA length, {0}, is invalid for RDBNAM.  The connection has been terminated.</text>
                <arg>length</arg>
            </msg>
            <msg>
                <name>58009.C.7</name>
                <text>Network protocol exception: SCLDTA length, {0}, is invalid for RDBCOLID.  The connection has been terminated.</text>
                <arg>length</arg>
            </msg>

            <msg>
                <name>58009.C.8</name>
                <text>Network protocol exception: SCLDTA length, {0}, is invalid for PKGID.  The connection has been terminated.</text>
                <arg>length</arg>
            </msg>

            <msg>
                <name>58009.C.9</name>
                <text>Network protocol exception: PKGNAMCSN length, {0}, is invalid at SQLAM {1}.  The connection has been terminated.</text>
                <arg>length</arg>
                <arg>sqlApplicationManager</arg>
            </msg>
            <msg>
                <name>58010.C</name>
                <text>A network protocol error was encountered.  A connection could not be established because the manager {0} at level {1} is not supported by the server. </text>
                <arg>managerCodePoint</arg>
                <arg>level</arg>
            </msg>

            <msg>
                <name>58014.C</name>
                <text>The DDM command 0x{0} is not supported.  The connection has been terminated.</text>
                <arg>distributedDataManagementCommand</arg>
            </msg>

            <msg>
                <name>58015.C</name>
                <text>The DDM object 0x{0} is not supported.  The connection has been terminated.</text>
                <arg>distributedDataManagementObject</arg>
            </msg>

            <msg>
                <name>58016.C</name>
                <text>The DDM parameter 0x{0} is not supported.  The connection has been terminated.</text>
                <arg>distributedDataManagementParameter</arg>
            </msg>

            <msg>
                <name>58017.C</name>
                <text>The DDM parameter value 0x{0} is not supported.  An input host variable may not be within the range the server supports.  The connection has been terminated.</text>
                <arg>distributedDataManagementParameterValue</arg>
            </msg>

        </family>


        <family>
            <title>Class X0: Execution exceptions</title>

            <msg>
                <name>X0A00.S</name>
                <text>The select list mentions column '{0}' twice. This is not allowed in queries with GROUP BY or HAVING clauses. Try aliasing one of the conflicting columns to a unique name.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>X0X02.S</name>
                <text>Table '{0}' cannot be locked in '{1}' mode.</text>
                <arg>tableName</arg>
                <arg>mode</arg>
            </msg>

            <msg>
                <name>X0X03.S</name>
                <text>Invalid transaction state - held cursor requires same isolation level</text>
            </msg>

            <msg>
                <name>X0X05.S</name>
                <text>Table/View '{0}' does not exist.</text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0X07.S</name>
                <text>Cannot remove jar file '{0}' because it is on your derby.database.classpath '{0}'.</text>
                <arg>fileName</arg>
                <arg>classpath</arg>
            </msg>

            <msg>
                <name>X0X0D.S</name>
                <text>Invalid column array length '{0}'. To return generated keys, column array must be of length 1 and contain only the identity column.</text>
                <arg>columnArrayLength</arg>
            </msg>

            <msg>
                <name>X0X0E.S</name>
                <text>Table '{1}' does not have an auto-generated column at column position '{0}'.</text>
                <arg>columnPosition</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0X0F.S</name>
                <text>Table '{1}' does not have an auto-generated column named '{0}'.</text>
                <arg>columnName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0X10.S</name>
                <text>The USING clause returned more than one row; only single-row ResultSets are permissible.</text>
            </msg>

            <msg>
                <name>X0X11.S</name>
                <text>The USING clause did not return any results so no parameters can be set. </text>
            </msg>

            <msg>
                <name>X0X13.S</name>
                <text>Jar file '{0}' does not exist in schema '{1}'.</text>
                <arg>fileName</arg>
                <arg>schemaNamet</arg>
            </msg>

            <msg>
                <name>X0X57.S</name>
                <text>An attempt was made to put a Java value of type '{0}' into a SQL value, but there is no corresponding SQL type.  The Java value is probably the result of a method call or field access.</text>
                <arg>type</arg>
            </msg>

            <msg>
                <name>X0X60.S</name>
                <text>A cursor with name '{0}' already exists.</text>
                <arg>cursorName</arg>
            </msg>

            <msg>
                <name>X0X61.S</name>
                <text>The values for column '{4}' in index '{0}' and table '{1}.{2}' do not match for row location {3}.  The value in the index is '{5}', while the value in the base table is '{6}'.  The full index key, including the row location, is '{7}'.  The suggested corrective action is to recreate the index.</text>
                <arg>indexName</arg>
                <arg>schemaName</arg>
                <arg>tableName</arg>
                <arg>rowLocation</arg>
                <arg>columnName</arg>
                <arg>dataValue</arg>
                <arg>dataValue</arg>
                <arg>indexKey</arg>
            </msg>

            <msg>
                <name>X0X62.S</name>
                <text>Inconsistency found between table '{0}' and index '{1}'.  Error when trying to retrieve row location '{2}' from the table.  The full index key, including the row location, is '{3}'. The suggested corrective action is to recreate the index.</text>
                <arg>tableName</arg>
                <arg>indexName</arg>
                <arg>rowLocation</arg>
                <arg>indexKey</arg>
            </msg>

            <msg>
                <name>X0X63.S</name>
                <text>Got IOException '{0}'.</text>
                <arg>exceptionText</arg>
            </msg>

            <msg>
                <name>X0X67.S</name>
                <text>Columns of type '{0}' may not be used in CREATE INDEX, ORDER BY, GROUP BY, UNION, INTERSECT, EXCEPT or DISTINCT statements because comparisons are not supported for that type.</text>
                <arg>type</arg>
            </msg>

            <msg>
                <name>X0X81.S</name>
                <text>{0} '{1}' does not exist.</text>
                <arg>sqlObjectType</arg>
                <arg>sqlObjectName</arg>
            </msg>

            <msg>
                <name>X0X85.S</name>
                <text>Index '{0}' was not created because '{1}' is not a valid index type.</text>
                <arg>indexName</arg>
                <arg>indexType</arg>
            </msg>

            <msg>
                <name>X0X86.S</name>
                <text>0 is an invalid parameter value for ResultSet.absolute(int row).</text>
            </msg>

            <msg>
                <name>X0X87.S</name>
                <text>ResultSet.relative(int row) cannot be called when the cursor is not positioned on a row.</text>
            </msg>

            <msg>
                <name>X0X95.S</name>
                <text>Operation '{0}' cannot be performed on object '{1}' because there is an open ResultSet dependent on that object.</text>
                <arg>operationName</arg>
                <arg>objectName</arg>
            </msg>

            <msg>
                <name>X0X99.S</name>
                <text>Index '{0}' does not exist.</text>
                <arg>indexName</arg>
            </msg>

            <msg>
                <name>X0Y16.S</name>
                <text>'{0}' is not a view.  If it is a table, then use DROP TABLE instead.</text>
                <arg>sqlObjectName</arg>
            </msg>

            <msg>
                <name>X0Y23.S</name>
                <text>Operation '{0}' cannot be performed on object '{1}' because VIEW '{2}' is dependent on that object.</text>
                <arg>operationName</arg>
                <arg>objectName</arg>
                <arg>viewName</arg>
            </msg>

            <msg>
                <name>X0Y24.S</name>
                <text>Operation '{0}' cannot be performed on object '{1}' because STATEMENT '{2}' is dependent on that object.</text>
                <arg>operationName</arg>
                <arg>objectName</arg>
                <arg>statement</arg>
            </msg>

            <msg>
                <name>X0Y25.S</name>
                <text>Operation '{0}' cannot be performed on object '{1}' because {2} '{3}' is dependent on that object.</text>
                <arg>operationName</arg>
                <arg>sqlObjectName</arg>
                <arg>sqlObjectType</arg>
                <arg>sqlObjectName</arg>
            </msg>

            <msg>
                <name>X0Y26.S</name>
                <text>Index '{0}' is required to be in the same schema as table '{1}'.</text>
                <arg>indexName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0Y28.S</name>
                <text>Index '{0}' cannot be created on system table '{1}'.  Users cannot create indexes on system tables.</text>
                <arg>indexName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0Y29.S</name>
                <text>Operation '{0}' cannot be performed on object '{1}' because TABLE '{2}' is dependent on that object.</text>
                <arg>operationName</arg>
                <arg>objectName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0Y30.S</name>
                <text>Operation '{0}' cannot be performed on object '{1}' because ROUTINE '{2}' is dependent on that object.</text>
                <arg>operationName</arg>
                <arg>objectName</arg>
                <arg>routineName</arg>
            </msg>

            <msg>
                <name>X0Y32.S</name>
                <text>{0} '{1}' already exists in {2} '{3}'.</text>
                <arg>sqlObjectType</arg>
                <arg>sqlObjectName</arg>
                <arg>sqlObjectType</arg>
                <arg>sqlObjectName</arg>
            </msg>

            <msg>
                <name>X0Y38.S</name>
                <text>Cannot create index '{0}' because table '{1}' does not exist.</text>
                <arg>indexName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0Y41.S</name>
                <text>Constraint '{0}' is invalid because the referenced table {1} has no primary key.  Either add a primary key to {1} or explicitly specify the columns of a unique constraint that this foreign key references. </text>
                <arg>constraintName</arg>
                <arg>tableName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0Y42.S</name>
                <text>Constraint '{0}' is invalid: the types of the foreign key columns do not match the types of the referenced columns.</text>
                <arg>constraintName</arg>
            </msg>

            <msg>
                <name>X0Y43.S</name>
                <text>Constraint '{0}' is invalid: the number of columns ({1}) does not match the number of columns in the referenced key ({2}).</text>
                <arg>constraintName</arg>
                <arg>number</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>X0Y44.S</name>
                <text>Constraint '{0}' is invalid: there is no unique or primary key constraint on table '{1}' that matches the number and types of the columns in the foreign key.</text>
                <arg>constraintName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0Y45.S</name>
                <text>Foreign key constraint '{0}' cannot be added to or enabled on table {1} because one or more foreign keys do not have matching referenced keys.  </text>
                <arg>constraintName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0Y46.S</name>
                <text>Constraint '{0}' is invalid: referenced table {1} does not exist.</text>
                <arg>constraintName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0Y47.S</name>
                <text>Constraint '{0}' is invalid: the unique or primary key constraint on table '{1}' is deferrable and the referential action is CASCADE or SET NULL.</text>
                <arg>constraintName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0Y54.S</name>
                <text>Schema '{0}' cannot be dropped because it is not empty.</text>
                <arg>schemaNamet</arg>
            </msg>

            <msg>
                <name>X0Y55.S</name>
                <text>The number of rows in the base table does not match the number of rows in at least 1 of the indexes on the table. Index '{0}' on table '{1}.{2}' has {3} rows, but the base table has {4} rows.  The suggested corrective action is to recreate the index.</text>
                <arg>indexName</arg>
                <arg>schemaNamet</arg>
                <arg>tableName</arg>
                <arg>number</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>X0Y56.S</name>
                <text>'{0}' is not allowed on the System table '{1}'.</text>
                <arg>sqlText</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0Y57.S</name>
                <text>A non-nullable column cannot be added to table '{0}' because the table contains at least one row. Non-nullable columns can only be added to empty tables.</text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0Y58.S</name>
                <text>Attempt to add a primary key constraint to table '{0}' failed because the table already has a constraint of that type.  A table can only have a single primary key constraint.</text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0Y59.S</name>
                <text>Attempt to add or enable constraint(s) on table '{1}' failed because the table contains {2} row(s) that violate the following check constraint(s): {0}.</text>
                <arg>constraintName</arg>
                <arg>tableName</arg>
                <arg>rowCount</arg>
            </msg>

            <msg>
                <name>X0Y63.S</name>
                <text>The command on table '{0}' failed because null data was found in the primary key or unique constraint/index column(s). All columns in a primary or unique index key must not be null.  </text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0Y63.S.1</name>
                <text>The command on table '{0}' failed because null data was found in the primary key/index column(s). All columns in a primary key must not be null.  </text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0Y66.S</name>
                <text>Cannot issue commit in a nested connection when there is a pending operation in the parent connection.</text>
            </msg>

            <msg>
                <name>X0Y67.S</name>
                <text>Cannot issue rollback in a nested connection when there is a pending operation in the parent connection.</text>
            </msg>

            <msg>
                <name>X0Y68.S</name>
                <text>{0} '{1}' already exists.</text>
                <arg>sqlObjectType</arg>
                <arg>sqlObjectName</arg>
            </msg>

            <msg>
                <name>X0Y69.S</name>
                <text>DDL is not supported in trigger {0}.</text>
                <arg>triggerName</arg>
            </msg>

            <msg>
                <name>X0Y70.S</name>
                <text>INSERT, UPDATE and DELETE are not permitted on table {1} because trigger {0} is active.</text>
                <arg>triggerName</arg>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>X0Y71.S</name>
                <text>Transaction manipulation such as SET ISOLATION is not permitted because trigger {0} is active.</text>
                <arg>triggerName</arg>
            </msg>

            <msg>
                <name>X0Y72.S</name>
                <text>Bulk insert replace is not permitted on '{0}' because it has an enabled trigger ({1}).</text>
                <arg>tableName</arg>
                <arg>triggerName</arg>
            </msg>

            <msg>
                <name>X0Y77.S</name>
                <text>Cannot issue set transaction isolation statement on a global transaction that is in progress because it would have implicitly committed the global transaction.</text>
            </msg>

            <msg>
                <name>X0Y78.S</name>
                <text>Statement.executeQuery() cannot be called with a statement that returns a row count.</text>
            </msg>

            <msg>
                <name>X0Y78.S.1</name>
                <text>{0}.executeQuery() cannot be called because multiple result sets were returned.  Use {1}.execute() to obtain multiple results.</text>
                <arg>javaInterfaceName</arg>
                <arg>javaInterfaceName</arg>
            </msg>

            <msg>
                <name>X0Y78.S.2</name>
                <text>{0}.executeQuery() was called but no result set was returned. Use {1}.executeUpdate() for non-queries.</text>
                <arg>javaInterfaceName</arg>
                <arg>javaInterfaceName</arg>
            </msg>

            <msg>
                <name>X0Y79.S</name>
                <text>Statement.executeUpdate() cannot be called with a statement that returns a ResultSet.</text>
            </msg>

            <msg>
                <name>X0Y80.S</name>
                <text>ALTER table '{0}' failed. Null data found in column '{1}'.</text>
                <arg>tableName</arg>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>X0Y83.S</name>
                <text>Warning: While deleting a row from a table the index row for base table row {0} was not found in index with conglomerate id {1}.  This problem has automatically been corrected as part of the delete operation.</text>
                <arg>rowName</arg>
                <arg>id</arg>
            </msg>

            <msg>
                <name>X0Y84.T</name>
                <text>Too much contention on sequence {0}. This is probably caused by an uncommitted scan of the SYS.SYSSEQUENCES catalog. Do not query this catalog directly. Instead, use the SYSCS_UTIL.SYSCS_PEEK_AT_SEQUENCE function to view the current value of a sequence generator.</text>
                <arg>sequenceName</arg>
            </msg>

            <msg>
                <name>X0Y85.S</name>
                <text>The Derby property '{0}' identifies a class which cannot be instantiated: '{1}'. See the next exception for details.</text>
                <arg>propertyName</arg>
                <arg>className</arg>
            </msg>

            <msg>
                <name>X0Y85.S.1</name>
                <text>The Derby property '{0}' identifies a class which does not implement the org.apache.derby.catalog.SequencePreallocator interface.</text>
                <arg>propertyName</arg>
            </msg>

            <msg>
                <name>X0Y86.S</name>
                <text>Derby could not obtain the locks needed to release the unused, preallocated values for the sequence '{0}'.'{1}'. As a result, unexpected gaps may appear in this sequence.</text>
                <arg>schemaName</arg>
                <arg>sequenceName</arg>
            </msg>

            <msg>
                <name>X0Y87.S</name>
                <text>There is already an aggregate or function with one argument whose name is '{0}'.'{1}'.</text>
                <arg>schemaName</arg>
                <arg>aggregateOrFunctionName</arg>
            </msg>

            <msg>
                <name>X0Y88.S</name>
                <text>Unknown optional tool: '{0}'</text>
                <arg>toolName</arg>
            </msg>

            <msg>
                <name>X0Y88.S.1</name>
                <text>The class '{0}' does not implement the org.apache.derby.iapi.sql.dictionary.OptionalTool interface.</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>X0Y89.S</name>
                <text>Bad arguments passed to SYSCS_UTIL.SYSCS_REGISTER_TOOL(). Please consult the Reference Manual section which describes this system procedure.</text>
            </msg>

            <msg>
                <name>X0Y90.S</name>
                <text>Cannot create an instance of {0}. Maybe this class is not visible on the classpath. Maybe it doesn not have a 0-arg constructor.</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>X0Y91.S</name>
                <text>Cannot change constraint mode of {0}. It is not a deferrable constraint.</text>
                <arg>constraintName</arg>
            </msg>

            <msg>
                <name>X0Y92.S</name>
                <text>Cannot change the names of this table function's columns.</text>
            </msg>

        </family>


        <family>
            <title>Class XBCA: CacheService</title>

            <msg>
                <name>XBCA0.S</name>
                <text>Cannot create new object with key {1} in {0} cache. The object already exists in the cache. </text>
                <arg>cacheName</arg>
                <arg>keyValue</arg>
            </msg>

        </family>


        <family>
            <title>Class XBCM: ClassManager</title>

            <msg>
                <name>XBCM1.S</name>
                <text>Java linkage error thrown during load of generated class {0}.</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>XBCM2.S</name>
                <text>Cannot create an instance of generated class {0}.</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>XBCM3.S</name>
                <text>Method {1}() does not exist in generated class {0}.</text>
                <arg>className</arg>
                <arg>methodName</arg>
            </msg>

            <msg>
                <name>XBCM4.S</name>
                <text>Java class file format limit(s) exceeded: {1} in generated class {0}.</text>
                <arg>className</arg>
                <arg>limitDescriptor</arg>
            </msg>

        </family>


        <family>
            <title>Class XBCX: Cryptography</title>

            <msg>
                <name>XBCX0.S</name>
                <text>Exception from Cryptography provider. See next exception for details.</text>
            </msg>

            <msg>
                <name>XBCX1.S</name>
                <text>Initializing cipher with illegal mode, must be either CipherFactory.ENCRYPT or CipherFactory.DECRYPT.</text>
            </msg>

            <msg>
                <name>XBCX2.S</name>
                <text>Initializing cipher with a boot password that is too short. The password must be at least {0} characters long.    </text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XBCX5.S</name>
                <text>Cannot change boot password to null.</text>
            </msg>

            <msg>
                <name>XBCX6.S</name>
                <text>Cannot change boot password to a non-string serializable type.</text>
            </msg>

            <msg>
                <name>XBCX7.S</name>
                <text>Wrong format for changing boot password.  Format must be : old_boot_password, new_boot_password.</text>
            </msg>

            <msg>
                <name>XBCX8.S</name>
                <text>Cannot change boot password for a non-encrypted database.</text>
            </msg>

            <msg>
                <name>XBCX9.S</name>
                <text>Cannot change boot password for a read-only database.  </text>
            </msg>

            <msg>
                <name>XBCXA.S</name>
                <text>Wrong boot password.</text>
            </msg>

            <msg>
                <name>XBCXB.S</name>
                <text>Bad encryption padding '{0}' or padding not specified. 'NoPadding' must be used.</text>
                <arg>paddingDirective</arg>
            </msg>

            <msg>
                <name>XBCXC.S</name>
                <text>Encryption algorithm '{0}' does not exist. Please check that the chosen provider '{1}' supports this algorithm.</text>
                <arg>algorithmName</arg>
                <arg>providerName</arg>
            </msg>

            <msg>
                <name>XBCXD.S</name>
                <text>The encryption algorithm cannot be changed after the database is created.</text>
            </msg>

            <msg>
                <name>XBCXE.S</name>
                <text>The encryption provider cannot be changed after the database is created.</text>
            </msg>

            <msg>
                <name>XBCXF.S</name>
                <text>The class '{0}' representing the encryption provider cannot be found.</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>XBCXF.S.1</name>
                <text>The class '{0}' does not implement the java.security.Provider interface.</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>XBCXG.S</name>
                <text>The encryption provider '{0}' does not exist.</text>
                <arg>providerName</arg>
            </msg>

            <msg>
                <name>XBCXH.S</name>
                <text>The encryptionAlgorithm '{0}' is not in the correct format. The correct format is algorithm/feedbackMode/NoPadding.</text>
                <arg>algorithmName</arg>
            </msg>

            <msg>
                <name>XBCXI.S</name>
                <text>The feedback mode '{0}' is not supported. Supported feedback modes are CBC, CFB, OFB and ECB.</text>
                <arg>mode</arg>
            </msg>

            <msg>
                <name>XBCXJ.S</name>
                <text>The application is using a version of the Java Cryptography Extension (JCE) earlier than 1.2.1.  Please upgrade to JCE 1.2.1 and try the operation again.    </text>
            </msg>

            <msg>
                <name>XBCXK.S</name>
                <text>The given encryption key does not match the encryption key used when creating the database. Please ensure that you are using the correct encryption key and try again. </text>
            </msg>

            <msg>
                <name>XBCXL.S</name>
                <text>The verification process for the encryption key was not successful. This could have been caused by an error when accessing the appropriate file to do the verification process.  See next exception for details.  </text>
            </msg>

            <msg>
                <name>XBCXM.S</name>
                <text>The length of the external encryption key must be an even number.</text>
            </msg>

            <msg>
                <name>XBCXN.S</name>
                <text>The external encryption key contains one or more illegal characters. Allowed characters for a hexadecimal number are 0-9, a-f and A-F.</text>
            </msg>

            <msg>
                <name>XBCXO.S</name>
                <text>Cannot encrypt, re-encrypt or decrypt the database when there is a global transaction in the prepared state.</text>
            </msg>

            <msg>
                <name>XBCXQ.S</name>
                <text>Cannot encrypt, re-encrypt or decrypt a read-only database.</text>
            </msg>

            <msg>
                <name>XBCXS.S</name>
                <text>Cannot encrypt, re-encrypt or decrypt a database when it is in the log archive mode.</text>
            </msg>

            <msg>
                <name>XBCXU.S</name>
                <text>Encryption, re-encryption or decryption of a database failed: {0}</text>
                <arg>failureMessage</arg>
            </msg>

            <msg>
                <name>XBCXW.S</name>
                <text>The message digest algorithm '{0}' is not supported by any of the available cryptography providers. Please install a cryptography provider that supports that algorithm, or specify another algorithm in the derby.authentication.builtin.algorithm property.</text>
                <arg>algorithmName</arg>
            </msg>

        </family>


        <family>
            <title>Class XBM: Monitor</title>

            <msg>
                <name>XBM01.D</name>
                <text>Startup failed due to an exception. See next exception for details. </text>
            </msg>

            <msg>
                <name>XBM02.D</name>
                <text>Startup failed due to missing functionality for {0}. Please ensure your classpath includes the correct Derby software.</text>
                <arg>moduleName</arg>
            </msg>

            <msg>
                <name>XBM05.D</name>
                <text>Startup failed due to missing product version information for {0}.</text>
                <arg>productName</arg>
            </msg>

            <msg>
                <name>XBM06.D</name>
                <text>Startup failed. An encrypted database cannot be accessed without the correct boot password.  </text>
            </msg>

            <msg>
                <name>XBM07.D</name>
                <text>Startup failed. Boot password must be at least 8 bytes long.</text>
            </msg>

            <msg>
                <name>XBM08.D</name>
                <text>Could not instantiate {0} StorageFactory class {1}.</text>
                <arg>subSubProtocol</arg>
                <arg>className</arg>
            </msg>

            <msg>
                <name>XBM0A.D</name>
                <text>The database directory '{0}' exists. However, it does not contain the expected '{1}' file. Perhaps Derby was brought down in the middle of creating this database. You may want to delete this directory and try creating the database again.</text>
                <arg>directoryName</arg>
                <arg>servicePropertiesName</arg>
            </msg>

            <msg>
                <name>XBM0B.D</name>
                <text>Failed to edit/write service properties file: {0}</text>
                <arg>errorMessage</arg>
            </msg>

            <msg>
                <name>XBM0C.D</name>
                <text>Missing privilege for operation '{0}' on file '{1}': {2}</text>
                <arg>operation</arg>
                <arg>path</arg>
                <arg>errorMessage</arg>
            </msg>

            <msg>
                <name>XBM0G.D</name>
                <text>Failed to start encryption engine. Please make sure you are running Java 2 and have downloaded an encryption provider such as jce and put it in your class path. </text>
            </msg>

            <msg>
                <name>XBM0H.D</name>
                <text>Directory {0} cannot be created.</text>
                <arg>directoryName</arg>
            </msg>

            <msg>
                <name>XBM0I.D</name>
                <text>Directory {0} cannot be removed.</text>
                <arg>directoryName</arg>
            </msg>

            <msg>
                <name>XBM0J.D</name>
                <text>Directory {0} already exists.</text>
                <arg>directoryName</arg>
            </msg>

            <msg>
                <name>XBM0K.D</name>
                <text>Unknown sub-protocol for database name {0}.</text>
                <arg>databaseName</arg>
            </msg>

            <msg>
                <name>XBM0L.D</name>
                <text>Specified authentication scheme class {0} does implement the authentication interface {1}.</text>
                <arg>className</arg>
                <arg>interfaceName</arg>
            </msg>

            <msg>
                <name>XBM0M.D</name>
                <text>Error creating an instance of a class named '{0}'. This class name was the value of the derby.authentication.provider property and was expected to be the name of an application-supplied implementation of org.apache.derby.authentication.UserAuthenticator. The underlying problem was: {1}</text>
                <arg>className</arg>
                <arg>detail</arg>
            </msg>

            <msg>
                <name>XBM0N.D</name>
                <text>JDBC Driver registration with java.sql.DriverManager failed. See next exception for details. </text>
            </msg>

            <msg>
                <name>XBM0P.D</name>
                <text>Service provider is read-only. Operation not permitted. </text>
            </msg>

            <msg>
                <name>XBM0Q.D</name>
                <text>File {0} not found. Please make sure that backup copy is the correct one and it is not corrupted.</text>
                <arg>fileName</arg>
            </msg>

            <msg>
                <name>XBM0R.D</name>
                <text>Unable to remove File {0}.  </text>
                <arg>fileName</arg>
            </msg>

            <msg>
                <name>XBM0S.D</name>
                <text>Unable to rename file '{0}' to '{1}'</text>
                <arg>fileName</arg>
                <arg>fileName</arg>
            </msg>

            <msg>
                <name>XBM0T.D</name>
                <text>Ambiguous sub-protocol for database name {0}.   </text>
                <arg>databaseName</arg>
            </msg>

            <msg>
                <name>XBM0U.S</name>
                <text>No class was registered for identifier {0}.</text>
                <arg>identifierName</arg>
            </msg>

            <msg>
                <name>XBM0V.S</name>
                <text>An exception was thrown while loading class {1} registered for identifier {0}.</text>
                <arg>identifierName</arg>
                <arg>className</arg>
            </msg>

            <msg>
                <name>XBM0W.S</name>
                <text>An exception was thrown while creating an instance of class {1} registered for identifier {0}.</text>
                <arg>identifierName</arg>
                <arg>className</arg>
            </msg>

            <msg>
                <name>XBM0X.D</name>
                <text>Supplied locale description '{0}' is invalid, expecting ln[_CO[_variant]]
ln=lower-case two-letter ISO-639 language code, CO=upper-case two-letter ISO-3166 country codes, see java.util.Locale.</text>
                <arg>localeID</arg>
            </msg>

            <msg>
                <name>XBM03.D</name>
                <text>Supplied value '{0}' for collation attribute is invalid, expecting UCS_BASIC or TERRITORY_BASED.</text>
                <arg>collationName</arg>
            </msg>

            <msg>
                <name>XBM04.D</name>
                <text>Collator support not available from the JVM for the database's locale '{0}'.</text>
                <arg>localeName</arg>
            </msg>

            <msg>
                <name>XBM0Y.D</name>
                <text>Backup database directory {0} not found. Please make sure that the specified backup path is right.</text>
                <arg>directoryName</arg>
            </msg>

            <msg>
                <name>XBM0Z.D</name>
                <text>Unable to copy file '{0}' to '{1}'. Please make sure that there is enough space and permissions are correct. </text>
                <arg>fileName</arg>
                <arg>fileName</arg>
            </msg>

        </family>

        <family>
            <title>Class XBD: Communication exceptions</title>

            <msg>
                <name>XBDA0.C.1</name>
                <text>Login timeout exceeded.</text>
            </msg>

        </family>


        <family>
            <title>Class XCL: Execution exceptions</title>

            <msg>
                <name>XCL01.S</name>
                <text>Result set does not return rows. Operation {0} not permitted. </text>
                <arg>operationName</arg>
            </msg>

            <msg>
                <name>XCL05.S</name>
                <text>Activation closed, operation {0} not permitted.</text>
                <arg>operationName</arg>
            </msg>

            <msg>
                <name>XCL07.S</name>
                <text>Cursor '{0}' is closed. Verify that autocommit is off.</text>
                <arg>cursorName</arg>
            </msg>

            <msg>
                <name>XCL08.S</name>
                <text>Cursor '{0}' is not on a row.</text>
                <arg>cursorName</arg>
            </msg>

            <msg>
                <name>XCL09.S</name>
                <text>An Activation was passed to the '{0}' method that does not match the PreparedStatement.</text>
                <arg>methodName</arg>
            </msg>

            <msg>
                <name>XCL10.S</name>
                <text>A PreparedStatement has been recompiled and the parameters have changed. If you are using JDBC you must prepare the statement again.  </text>
            </msg>

            <msg>
                <name>XCL12.S</name>
                <text>An attempt was made to put a data value of type '{0}' into a data value of type '{1}'.</text>
                <arg>datatypeName</arg>
                <arg>datatypeName</arg>
            </msg>

            <msg>
                <name>XCL13.S</name>
                <text>The parameter position '{0}' is out of range.  The number of parameters for this prepared  statement is '{1}'.</text>
                <arg>parameterPosition</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XCL14.S</name>
                <text>The column position '{0}' is out of range.  The number of columns for this ResultSet is '{1}'.</text>
                <arg>columnPosition</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XCL15.S</name>
                <text>A ClassCastException occurred when calling the compareTo() method on an object '{0}'.  The parameter to compareTo() is of class '{1}'.</text>
                <arg>object</arg>
                <arg>className</arg>
            </msg>

            <msg>
                <name>XCL16.S</name>
                <text>ResultSet not open. Operation '{0}' not permitted. Verify that autocommit is off.</text>
                <arg>operation</arg>
            </msg>

            <msg>
                <name>XCL18.S</name>
                <text>Stream or LOB value cannot be retrieved more than once</text>
            </msg>

            <msg>
                <name>XCL19.S</name>
                <text>Missing row in table '{0}' for key '{1}'.</text>
                <arg>tableName</arg>
                <arg>key</arg>
            </msg>

            <msg>
                <name>XCL20.S</name>
                <text>Catalogs at version level '{0}' cannot be upgraded to version level '{1}'.</text>
                <arg>versionNumber</arg>
                <arg>versionNumber</arg>
            </msg>

            <msg>
                <name>XCL21.S</name>
                <text>You are trying to execute a Data Definition statement (CREATE, DROP, or ALTER) while preparing a different statement. This is not allowed. It can happen if you execute a Data Definition statement from within a static initializer of a Java class that is being used from within a SQL statement.</text>
            </msg>

            <msg>
                <name>XCL22.S</name>
                <text>Parameter {0} cannot be registered as an OUT parameter because it is an IN parameter. </text>
                <arg>parameterName</arg>
            </msg>

            <msg>
                <name>XCL23.S</name>
                <text>SQL type number '{0}' is not a supported type by registerOutParameter().</text>
                <arg>type</arg>
            </msg>

            <msg>
                <name>XCL24.S</name>
                <text>Parameter {0} appears to be an output parameter, but it has not been so designated by registerOutParameter().  If it is not an output parameter, then it has to be set to type {1}.</text>
                <arg>parameterName</arg>
                <arg>type</arg>
            </msg>

            <msg>
                <name>XCL25.S</name>
                <text>Parameter {0} cannot be registered to be of type {1} because it maps to type {2} and they are incompatible.</text>
                <arg>parameterName</arg>
                <arg>type</arg>
                <arg>type</arg>
            </msg>

            <msg>
                <name>XCL26.S</name>
                <text>Parameter {0} is not an output parameter.</text>
                <arg>parameterName</arg>
            </msg>

            <msg>
                <name>XCL27.S</name>
                <text>Return output parameters cannot be set.</text>
            </msg>

            <msg>
                <name>XCL30.S</name>
                <text>An IOException was thrown when reading a '{0}' from an InputStream.</text>
                <arg>dataType</arg>
            </msg>

            <msg>
                <name>XCL31.S</name>
                <text>Statement closed.</text>
            </msg>

            <msg>
                <name>XCL33.S</name>
                <text>The table cannot be defined as a dependent of table {0} because of delete rule restrictions. (The relationship is self-referencing and a self-referencing relationship already exists with the SET NULL delete rule.) </text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>XCL34.S</name>
                <text>The table cannot be defined as a dependent of table {0} because of delete rule restrictions. (The relationship forms a cycle of two or more tables that cause the table to be delete-connected to itself (all other delete rules in the cycle would be CASCADE)).  </text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>XCL35.S</name>
                <text>The table cannot be defined as a dependent of table {0} because of delete rule restrictions. (The relationship causes the table to be delete-connected to the indicated table through multiple relationships and the delete rule of the existing relationship is SET NULL.).  </text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>XCL36.S</name>
                <text>The delete rule of foreign key must be {0}. (The referential constraint is self-referencing and an existing self-referencing constraint has the indicated delete rule (NO ACTION, RESTRICT or CASCADE).)</text>
                <arg>sqlText</arg>
            </msg>

            <msg>
                <name>XCL37.S</name>
                <text>The delete rule of foreign key must be {0}. (The referential constraint is self-referencing and the table is dependent in a relationship with a delete rule of CASCADE.)</text>
                <arg>sqlText</arg>
            </msg>

            <msg>
                <name>XCL38.S</name>
                <text>The delete rule of foreign key  must be {0}. The relationship would cause the table to be delete-connected to the same table through multiple relationships and such relationships must have the same delete rule (NO ACTION, RESTRICT or CASCADE). </text>
                <arg>ruleName</arg>
            </msg>

            <msg>
                <name>XCL39.S</name>
                <text>The delete rule of foreign key cannot be CASCADE. (A self-referencing constraint exists with a delete rule of SET NULL, NO ACTION or RESTRICT.) </text>
            </msg>

            <msg>
                <name>XCL40.S</name>
                <text>The delete rule of foreign key cannot be CASCADE. (The relationship would form a cycle that would cause a table to be delete-connected to itself. One of the existing delete rules in the cycle is not CASCADE, so this relationship may be definable if the delete rule is not CASCADE.) </text>
            </msg>

            <msg>
                <name>XCL41.S</name>
                <text>The delete rule of foreign key can not be CASCADE. (The relationship would cause another table to be delete-connected to the same table through multiple paths with different delete rules or with delete rule equal to SET NULL.) </text>
            </msg>

            <msg>
                <name>XCL47.S</name>
                <text>Use of '{0}' requires database to be upgraded from version {1} to version {2} or later.</text>
                <arg>sqlText</arg>
                <arg>versionNumber</arg>
                <arg>versionNumber</arg>
            </msg>

            <msg>
                <name>XCL48.S</name>
                <text> TRUNCATE TABLE is not permitted on '{0}' because unique/primary key constraints on this table are referenced by enabled foreign key constraints from other tables. </text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>XCL49.S</name>
                <text> TRUNCATE TABLE is not permitted on '{0}' because it has an enabled DELETE trigger ({1}).</text>
                <arg>tableName</arg>
                <arg>triggerName</arg>
            </msg>

            <msg>
                <name>XCL50.S</name>
                <text>Upgrading the database from a previous version is not supported.  The database being accessed is at version level '{0}', this software is at version level '{1}'.    </text>
                <arg>versionNumber</arg>
                <arg>versionNumber</arg>
            </msg>

            <msg>
                <name>XCL51.S</name>
                <text>The requested function can not reference tables in SESSION schema.</text>
            </msg>

            <msg>
                <name>XCL52.S</name>
                <text>The statement has been cancelled or timed out.</text>
            </msg>

        </family>


        <family>
            <title>Class XCW: Upgrade unsupported</title>

            <msg>
                <name>XCW00.D</name>
                <text>Unsupported upgrade from '{0}' to '{1}'.</text>
                <arg>versionID</arg>
                <arg>versionID</arg>
            </msg>

        </family>


        <family>
            <title>Class XCX: Internal Utility Errors</title>

            <msg>
                <name>XCXA0.S</name>
                <text>Invalid identifier.</text>
            </msg>

            <msg>
                <name>XCXB0.S</name>
                <text>Invalid database classpath: '{0}'.</text>
                <arg>classpath</arg>
            </msg>

            <msg>
                <name>XCXC0.S</name>
                <text>Invalid id list.</text>
            </msg>

            <msg>
                <name>XCXE0.S</name>
                <text>You are trying to do an operation that uses the locale of the database, but the database does not have a locale.</text>
            </msg>

        </family>


        <family>
            <title>Class XCY: Derby Property Exceptions</title>

            <msg>
                <name>XCY00.S</name>
                <text>Invalid value for property '{0}'='{1}'.</text>
                <arg>propertyName</arg>
                <arg>propertyValue</arg>
            </msg>

            <msg>
                <name>XCY02.S</name>
                <text>The requested property change is not supported '{0}'='{1}'.</text>
                <arg>propertyName</arg>
                <arg>propertyValue</arg>
            </msg>

            <msg>
                <name>XCY03.S</name>
                <text>Required property '{0}' has not been set.</text>
                <arg>propertyName</arg>
            </msg>

            <msg>
                <name>XCY04.S</name>
                <text>Invalid syntax for optimizer overrides. The syntax should be -- DERBY-PROPERTIES propertyName = value [, propertyName = value]*</text>
            </msg>

            <msg>
                <name>XCY05.S.2</name>
                <text>Invalid setting of the derby.authentication.provider property. This property is already set to enable NATIVE authentication and cannot be changed.</text>
            </msg>

            <msg>
                <name>XCY05.S.3</name>
                <text>Invalid setting of the derby.authentication.provider property. To enable NATIVE authentication, use the SYSCS_UTIL.SYSCS_CREATE_USER procedure to store credentials for the database owner.</text>
            </msg>

        </family>


        <family>
            <title>Class XCZ: org.apache.derby.database.UserUtility</title>

            <msg>
                <name>XCZ00.S</name>
                <text>Unknown permission '{0}'.</text>
                <arg>permissionName</arg>
            </msg>

            <msg>
                <name>XCZ01.S</name>
                <text>Unknown user '{0}'.</text>
                <arg>authorizationID</arg>
            </msg>

            <msg>
                <name>XCZ02.S</name>
                <text>Invalid parameter '{0}'='{1}'.</text>
                <arg>propertyName</arg>
                <arg>propertyValue</arg>
            </msg>

        </family>


        <family>
            <title>Class XD00: Dependency Manager</title>

            <msg>
                <name>XD004.S</name>
                <text>Unable to store dependencies.</text>
            </msg>

        </family>


        <family>
            <title>Class XIE: Import/Export Exceptions</title>

            <msg>
                <name>XIE01.S</name>
                <text>Connection was null.</text>
            </msg>

            <msg>
                <name>XIE03.S</name>
                <text>Data found on line {0} for column {1} after the stop delimiter.  </text>
                <arg>lineNumber</arg>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>XIE04.S</name>
                <text>Data file not found: {0}</text>
                <arg>fileName</arg>
            </msg>

            <msg>
                <name>XIE05.S</name>
                <text>Data file cannot be null. </text>
            </msg>

            <msg>
                <name>XIE06.S</name>
                <text>Entity name was null.</text>
            </msg>

            <msg>
                <name>XIE07.S</name>
                <text>Field and record separators cannot be substrings of each other. </text>
            </msg>

            <msg>
                <name>XIE08.S</name>
                <text>There is no column named: {0}.  </text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>XIE09.S</name>
                <text>The total number of columns in the row is: {0}.  </text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XIE0B.S</name>
                <text>Column '{0}' in the table is of type {1}, it is not supported by the import/export feature.   </text>
                <arg>columnName</arg>
                <arg>type</arg>
            </msg>

            <msg>
                <name>XIE0D.S</name>
                <text>Cannot find the record separator on line {0}.</text>
                <arg>lineNumber</arg>
            </msg>

            <msg>
                <name>XIE0E.S</name>
                <text>Read end of file at unexpected place on line {0}.</text>
                <arg>lineNumber</arg>
            </msg>

            <msg>
                <name>XIE0I.S</name>
                <text>An IOException occurred while writing data to the file.</text>
            </msg>

            <msg>
                <name>XIE0J.S</name>
                <text>A delimiter is not valid or is used more than once.</text>
            </msg>

            <msg>
                <name>XIE0K.S</name>
                <text>The period was specified as a character string delimiter.</text>
            </msg>

            <msg>
                <name>XIE0M.S</name>
                <text>Table '{0}' does not exist.  </text>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>XIE0N.S</name>
                <text>An invalid hexadecimal string '{0}' detected in the import file.</text>
                <arg>hexString</arg>
            </msg>

            <msg>
                <name>XIE0P.S</name>
                <text>Lob data file {0} referenced in the import file not found.</text>
                <arg>fileName</arg>
            </msg>

            <msg>
                <name>XIE0Q.S</name>
                <text>Lob data file name cannot be null. </text>
            </msg>

            <msg>
                <name>XIE0R.S</name>
                <text>Import error on line {0} of file {1}: {2} </text>
                <arg>lineNumber</arg>
                <arg>fileName</arg>
                <arg>details</arg>
            </msg>

	    <msg>
                <name>XIE0S.S</name>
		<text>The operation was not performed, because the specified output file ({0}) already exists. The procedure will not overwrite an existing file, even if the process has permissions to write to that file, due to security concerns, and to avoid accidental file damage. Please either change the output file name in the procedure arguments to specify a file which does not exist, or delete the existing file, then retry the operation.</text>
                <arg>fileName</arg>
            </msg>

	    <msg>
                <name>XIE0T.S</name>
		<text>The export operation was not performed, because the specified large object auxiliary file ({0}) already exists. Export processing will not overwrite an existing file, even if the process has permissions to write to that file, due to security concerns, and to avoid accidental file damage. Please either change the large object auxiliary file name in the export procedure arguments to specify a file which does not exist, or delete the existing file, then retry the export operation.</text> 
                <arg>fileName</arg>
            </msg>

        </family>


        <family>
            <title>Class XJ: Connectivity Errors</title>

            <msg>
                <name>XJ004.C</name>
                <text>Database '{0}' not found.</text>
                <arg>databaseName</arg>
            </msg>

            <msg>
                <name>XJ008.S</name>
                <text>Cannot rollback or release a savepoint when in auto-commit mode.</text>
            </msg>

            <msg>
                <name>XJ009.S</name>
                <text>Use of CallableStatement required for stored procedure call or use of output parameters: {0}</text>
                <arg>sqlText</arg>
            </msg>

            <msg>
                <name>XJ010.S</name>
                <text>Cannot issue SAVEPOINT when autoCommit is on.</text>
            </msg>

            <msg>
                <name>XJ011.S</name>
                <text>Cannot pass null for SAVEPOINT name.</text>
            </msg>

            <msg>
                <name>XJ012.S</name>
                <text>'{0}' already closed.</text>
                <arg>interfaceName</arg>
            </msg>

            <msg>
                <name>XJ013.S</name>
                <text>No identifier for named SAVEPOINTS.</text>
            </msg>

            <msg>
                <name>XJ014.S</name>
                <text>No name for un-named SAVEPOINTS.</text>
            </msg>

            <msg>
                <name>XJ015.M</name>
                <text>Derby system shutdown.</text>
            </msg>

            <msg>
                <name>XJ016.S</name>
                <text>Method '{0}' not allowed on prepared statement.</text>
                <arg>methodName</arg>
            </msg>

            <msg>
                <name>XJ017.S</name>
                <text>No savepoint command allowed inside the trigger code.</text>
            </msg>

            <msg>
                <name>XJ018.S</name>
                <text>Column name cannot be null.</text>
            </msg>

            <msg>
                <name>XJ020.S</name>
                <text>Object type not convertible to type '{0}', invalid java.sql.Types value, or object was null.</text>
                <arg>typeName</arg>
            </msg>

            <msg>
                <name>XJ021.S</name>
                <text>Type is not supported.</text>
            </msg>

            <msg>
                <name>XJ022.S</name>
                <text>Unable to set stream: '{0}'.</text>
                <arg>name</arg>
            </msg>

            <msg>
                <name>XJ023.S</name>
                <text>Input stream did not have exact amount of data as the requested length.</text>
            </msg>

            <msg>
                <name>XJ025.S</name>
                <text>Input stream cannot have negative length.</text>
            </msg>

            <msg>
                <name>XJ028.C</name>
                <text>The URL '{0}' is not properly formed.</text>
                <arg>urlValue</arg>
            </msg>

            <msg>
                <name>XJ030.S</name>
                <text>Cannot set Autocommit On when in a nested connection.</text>
            </msg>

            <msg>
                <name>XJ040.C</name>
                <text>Failed to start database '{0}' with class loader {1}, see the next exception for details.</text>
                <arg>databaseName</arg>
		<arg>classLoader</arg>
            </msg>

            <msg>
                <name>XJ041.C</name>
                <text>Failed to create database '{0}', see the next exception for details.</text>
                <arg>databaseName</arg>
            </msg>

            <msg>
                <name>XJ042.S</name>
                <text>'{0}' is not a valid value for property '{1}'.</text>
                <arg>propertyValue</arg>
                <arg>propertyName</arg>
            </msg>

            <msg>
                <name>XJ044.S</name>
                <text>'{0}' is an invalid scale.</text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XJ045.S</name>
                <text>Invalid or (currently) unsupported isolation level, '{0}', passed to Connection.setTransactionIsolation(). The currently supported values are java.sql.Connection.TRANSACTION_SERIALIZABLE, java.sql.Connection.TRANSACTION_REPEATABLE_READ, java.sql.Connection.TRANSACTION_READ_COMMITTED, and java.sql.Connection.TRANSACTION_READ_UNCOMMITTED.</text>
                <arg>levelName</arg>
            </msg>

            <msg>
                <name>XJ048.C</name>
                <text>Conflicting boot attributes specified: {0}</text>
                <arg>attributes</arg>
            </msg>

            <msg>
                <name>XJ049.C</name>
                <text>Conflicting create attributes specified.</text>
            </msg>

            <msg>
                <name>XJ04B.S</name>
                <text>Batch cannot contain a command that attempts to return a result set.</text>
            </msg>

            <msg>
                <name>XJ04C.S</name>
                <text>CallableStatement batch cannot contain output parameters.</text>
            </msg>

            <msg>
                <name>XJ056.S</name>
                <text>Cannot set Autocommit On when in an XA connection.</text>
            </msg>

            <msg>
                <name>XJ057.S</name>
                <text>Cannot commit a global transaction using the Connection, commit processing must go thru XAResource interface.</text>
            </msg>

            <msg>
                <name>XJ058.S</name>
                <text>Cannot rollback a global transaction using the Connection, commit processing must go thru XAResource interface.</text>
            </msg>

            <msg>
                <name>XJ059.S</name>
                <text>Cannot close a connection while a global transaction is still active.</text>
            </msg>

            <msg>
                <name>XJ05B.C</name>
                <text>JDBC attribute '{0}' has an invalid value '{1}', valid values are '{2}'.</text>
                <arg>attributeName</arg>
                <arg>attributeValue</arg>
                <arg>attributeValues</arg>
            </msg>

            <msg>
                <name>XJ05C.S</name>
                <text>Cannot set holdability ResultSet.HOLD_CURSORS_OVER_COMMIT for a global transaction.</text>
            </msg>

            <msg>
                <name>XJ061.S</name>
                <text>The '{0}' method is only allowed on scroll cursors.</text>
                <arg>methodName</arg>
            </msg>

            <msg>
                <name>XJ062.S</name>
                <text>Invalid parameter value '{0}' for ResultSet.setFetchSize(int rows).</text>
                <arg>invalidNumber</arg>
            </msg>

            <msg>
                <name>XJ063.S</name>
                <text>Invalid parameter value '{0}' for Statement.setMaxRows(int maxRows).  Parameter value must be &gt;= 0.</text>
                <arg>invalidNumber</arg>
            </msg>

            <msg>
                <name>XJ064.S</name>
                <text>Invalid parameter value '{0}' for setFetchDirection(int direction).</text>
                <arg>invalidNumber</arg>
            </msg>

            <msg>
                <name>XJ065.S</name>
                <text>Invalid parameter value '{0}' for Statement.setFetchSize(int rows).</text>
                <arg>invalidNumber</arg>
            </msg>

            <msg>
                <name>XJ066.S</name>
                <text>Invalid parameter value '{0}' for Statement.setMaxFieldSize(int max).</text>
                <arg>invalidNumber</arg>
            </msg>

            <msg>
                <name>XJ067.S</name>
                <text>SQL text pointer is null.</text>
            </msg>

            <msg>
                <name>XJ068.S</name>
                <text>Only executeBatch and clearBatch allowed in the middle of a batch.</text>
            </msg>

            <msg>
                <name>XJ069.S</name>
                <text>No SetXXX methods allowed in case of USING execute statement.</text>
            </msg>

            <msg>
                <name>XJ070.S</name>
                <text>Negative or zero position argument '{0}' passed in a Blob or Clob method.</text>
                <arg>argument</arg>
            </msg>

            <msg>
                <name>XJ071.S</name>
                <text>Negative length argument '{0}' passed in a BLOB or CLOB method.</text>
                <arg>argument</arg>
            </msg>

            <msg>
                <name>XJ072.S</name>
                <text>Null pattern or searchStr passed in to a BLOB or CLOB position method.</text>
            </msg>

            <msg>
                <name>XJ073.S</name>
                <text>The data in this BLOB or CLOB is no longer available.  The BLOB/CLOB's transaction may be committed, its connection closed or it has been freed.</text>
            </msg>

            <msg>
                <name>XJ074.S</name>
                <text>Invalid parameter value '{0}' for Statement.setQueryTimeout(int seconds).</text>
                <arg>invalidNumber</arg>
            </msg>

            <msg>
                <name>XJ076.S</name>
                <text>The position argument '{0}' exceeds the size of the BLOB/CLOB.</text>
                <arg>positionArgument</arg>
            </msg>

            <msg>
                <name>XJ077.S</name>
                <text>Got an exception when trying to read the first byte/character of the BLOB/CLOB pattern using getBytes/getSubString.</text>
            </msg>

            <msg>
                <name>XJ078.S</name>
                <text>Offset '{0}' is either less than zero or is too large for the current BLOB/CLOB.</text>
                <arg>invalidNumber</arg>
            </msg>

            <msg>
                <name>XJ079.S</name>
                <text>The length specified '{0}' exceeds the size of the BLOB/CLOB.</text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XJ080.S</name>
                <text>USING execute statement passed {0} parameters rather than {1}.</text>
                <arg>number</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XJ081.C</name>
                <text>Conflicting create/restore/recovery attributes specified.</text>
            </msg>

            <msg>
                <name>XJ081.S</name>
                <text>Invalid value '{0}' passed as parameter '{1}' to method '{2}'</text>
                <arg>parameterValue</arg>
                <arg>parameterName</arg>
                <arg>methodName</arg>
            </msg>

            <msg>
                <name>XJ085.S</name>
                <text>Stream has already been read and end-of-file reached and cannot be re-used.</text>
            </msg>

            <msg>
                <name>XJ086.S</name>
                <text>This method cannot be invoked while the cursor is not on the insert row or if the concurrency of this ResultSet object is CONCUR_READ_ONLY.</text>
            </msg>

            <msg>
                <name>XJ087.S</name>
                <text>Sum of position('{0}') and length('{1}') is greater than the size of the LOB plus one.</text>
                <arg>pos</arg>
                <arg>length</arg>
            </msg>

            <msg>
                <name>XJ088.S</name>
                <text>Invalid operation: wasNull() called with no data retrieved.</text>
            </msg>

            <msg>
                <name>XJ090.S</name>
                <text>Invalid parameter: calendar is null.</text>
            </msg>

            <msg>
                <name>XJ091.S</name>
                <text>Invalid argument: parameter index {0} is not an OUT or INOUT parameter.</text>
                <arg>indexNumber</arg>
            </msg>

            <msg>
                <name>XJ093.S</name>
                <text>Length of BLOB/CLOB, {0}, is too large.  The length cannot exceed {1}.</text>
                <arg>number</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XJ095.S</name>
                <text>An attempt to execute a privileged action failed.</text>
            </msg>

            <msg>
                <name>XJ097.S</name>
                <text>Cannot rollback or release a savepoint that was not created by this connection.</text>
            </msg>

            <msg>
                <name>XJ098.S</name>
                <text>The auto-generated keys value {0} is invalid</text>
                <arg>keyValue</arg>
            </msg>

            <msg>
                <name>XJ099.S</name>
                <text>The Reader/Stream object does not contain length characters</text>
            </msg>

            <msg>
                <name>XJ100.S</name>
                <text>The scale supplied by the registerOutParameter method does not match with the setter method. Possible loss of precision!</text>
            </msg>

            <msg>
                <name>XJ103.S</name>
                <text>Table name can not be null</text>
            </msg>

            <msg>
                <name>XJ104.S</name>
                <text>Shared key length is invalid: {0}.</text>
                <arg>invalidNumber</arg>
            </msg>

            <msg>
                <name>XJ105.S</name>
                <text>DES key has the wrong length, expected length {0}, got length {1}.</text>
                <arg>number</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XJ106.S</name>
                <text>No such padding </text>
            </msg>

            <msg>
                <name>XJ107.S</name>
                <text>Bad Padding</text>
            </msg>

            <msg>
                <name>XJ108.S</name>
                <text>Illegal Block Size</text>
            </msg>

            <msg>
                <name>XJ110.S</name>
                <text>Primary table name can not be null</text>
            </msg>

            <msg>
                <name>XJ111.S</name>
                <text>Foreign table name can not be null</text>
            </msg>

            <msg>
                <name>XJ112.S</name>
                <text>Security exception encountered, see next exception for details.</text>
            </msg>

            <msg>
                <name>XJ113.S</name>
                <text>Unable to open file {0} : {1}</text>
                <arg>fileName</arg>
                <arg>error</arg>
            </msg>

            <msg>
                <name>XJ114.S</name>
                <text>Invalid cursor name '{0}'</text>
                <arg>cursorName</arg>
            </msg>

            <msg>
                <name>XJ115.S</name>
                <text>Unable to open resultSet with requested holdability {0}.</text>
                <arg>invalidNumber</arg>
            </msg>

            <msg>
                <name>XJ116.S</name>
                <text>No more than {0} commands may be added to a single batch.</text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XJ117.S</name>
                <text>Batching of queries not allowed by J2EE compliance.</text>
            </msg>

            <msg>
                <name>XJ118.S</name>
                <text>Query batch requested on a non-query statement.</text>
            </msg>

            <msg>
                <name>XJ121.S</name>
                <text>Invalid operation at current cursor position.</text>
            </msg>

            <msg>
                <name>XJ122.S</name>
                <text>No updateXXX methods were called on this row.</text>
            </msg>

            <msg>
                <name>XJ123.S</name>
                <text>This method must be called to update values in the current row or the insert row.</text>
            </msg>

            <msg>
                <name>XJ124.S</name>
                <text>Column not updatable.</text>
            </msg>

            <msg>
                <name>XJ125.S</name>
                <text>This method should only be called on ResultSet objects that are scrollable (type TYPE_SCROLL_INSENSITIVE).</text>
            </msg>

            <msg>
                <name>XJ126.S</name>
                <text>This method should not be called on sensitive dynamic cursors.</text>
            </msg>

            <msg>
                <name>XJ128.S</name>
                <text>Unable to unwrap for '{0}'</text>
                <arg>interfaceName</arg>
            </msg>

            <msg>
                <name>XJ200.S</name>
                <text>Exceeded maximum number of sections {0}</text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XJ202.S</name>
                <text>Invalid cursor name '{0}'.</text>
                <arg>cursorName</arg>
            </msg>

            <msg>
                <name>XJ203.S</name>
                <text>Cursor name '{0}' is already in use</text>
                <arg>cursorName</arg>
            </msg>

            <msg>
                <name>XJ204.S</name>
                <text>Unable to open result set with requested holdability {0}.</text>
                <arg>holdValue</arg>
            </msg>

            <msg>
                <name>XJ206.S</name>
                <text>SQL text '{0}' has no tokens.</text>
                <arg>sqlText</arg>
            </msg>

            <msg>
                <name>XJ207.S</name>
                <text>executeQuery method can not be used for update.</text>
            </msg>

            <msg>
                <name>XJ208.S</name>
                <text>Non-atomic batch failure.  The batch was submitted, but at least one exception occurred on an individual member of the batch. Use getNextException() to retrieve the exceptions for specific batched elements.</text>
            </msg>

            <msg>
                <name>XJ209.S</name>
                <text>The required stored procedure is not installed on the server.</text>
            </msg>

            <msg>
                <name>XJ210.S</name>
                <text>The load module name for the stored procedure on the server is not found.</text>
            </msg>

            <msg>
                <name>XJ211.S</name>
                <text>Non-recoverable chain-breaking exception occurred during batch processing. The batch is terminated non-atomically.</text>
            </msg>

            <msg>
                <name>XJ212.S</name>
                <text>Invalid attribute syntax: {0}</text>
                <arg>attributeSyntax</arg>
            </msg>

            <msg>
                <name>XJ213.C</name>
                <text>The traceLevel connection property does not have a valid format for a number.</text>
            </msg>

            <msg>
                <name>XJ214.S</name>
                <text>An IO Error occurred when calling free() on a CLOB or BLOB.</text>
            </msg>

            <msg>
                <name>XJ215.S</name>
                <text>You cannot invoke other java.sql.Clob/java.sql.Blob methods after calling the free() method or after the Blob/Clob's transaction has been committed or rolled back.</text>
            </msg>
	    
	    <msg>
                <name>XJ216.S</name>
                <text>The length of this BLOB/CLOB is not available yet. When a BLOB or CLOB is accessed as a stream, the length is not available until the entire stream has been processed.</text>
            </msg>
            <msg>
                <name>XJ217.S</name>
                <text>The locator that was supplied for this CLOB/BLOB is invalid</text>
            </msg>

        </family>

        <family>
            <title>Class XK: Security Exceptions</title>

            <msg>
                <name>XK000.S</name>
                <text>The security policy could not be reloaded: {0}</text>
                <arg>reason</arg>
            </msg>

            <msg>
                <name>XK001.S</name>
                <text>Username not found in SYS.SYSUSERS.</text>
            </msg>

        </family>


 
        <family>
            <title>Class XN: Network Client Exceptions</title>

            <msg>
                <name>XN001.S</name>
                <text>Connection reset is not allowed when inside a unit of work.</text>
            </msg>

            <msg>
                <name>XN008.S</name>
                <text>Query processing has been terminated due to an error on the server.</text>
            </msg>

            <msg>
                <name>XN009.S</name>
                <text>Error obtaining length of BLOB/CLOB object, exception follows.</text>
            </msg>

            <msg>
                <name>XN010.S</name>
                <text>Procedure name can not be null.</text>
            </msg>

            <msg>
                <name>XN011.S</name>
                <text>Procedure name length {0} is not within the valid range of 1 to {1}.</text>
                <arg>number</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XN012.S</name>
                <text>On {0} platforms, XA supports version {1} and above, this is version {2}</text>
                <arg>operatingSystemName</arg>
                <arg>versionNumber</arg>
                <arg>versionNumber</arg>
            </msg>

            <msg>
                <name>XN013.S</name>
                <text>Invalid scroll orientation.</text>
            </msg>

            <msg>
                <name>XN014.S</name>
                <text>Encountered an Exception while reading from the stream specified by parameter #{0}.  The remaining data expected by the server has been filled with 0x0. The Exception had this message: {1}.</text>
                <arg>number</arg>
                <arg>messageText</arg>
            </msg>

            <msg>
                <name>XN015.S</name>
                <text>Network protocol error: the specified size of the InputStream, parameter #{0}, is less than the actual InputStream length.</text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XN016.S</name>
                <text>Encountered an Exception while trying to verify the length of the stream specified by parameter #{0}.  The Exception had this message: {1}.</text>
                <arg>number</arg>
                <arg>messageText</arg>
            </msg>

            <msg>
                <name>XN017.S</name>
                <text>End of stream prematurely reached while reading the stream specified by parameter #{0}.  The remaining data expected by the server has been filled with 0x0.</text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XN018.S</name>
                <text>Network protocol error: the specified size of the Reader, parameter #{0}, is less than the actual InputStream length.</text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XN019.S</name>
                <text>Error executing a {0}, server returned {1}.</text>
                <arg>xaFunctionName</arg>
                <arg>xaError</arg>
            </msg>

            <msg>
                <name>XN020.S</name>
                <text>Error marshalling or unmarshalling a user defined type: {0}</text>
                <arg>messageDetail</arg>
            </msg>

            <msg>
                <name>XN021.S</name>
                <text>An object of type {0} cannot be cast to an object of type {1}.</text>
                <arg>sourceClassName</arg>
                <arg>targetClassName</arg>
            </msg>

            <msg>
                <name>XN022.C</name>
                <text>A write chain that has transmitted data to the server cannot be reset until the request is finished and the chain terminated.</text>
            </msg>
            
            <msg>
                <name>XN023.C</name>
                <text>The stream specified by parameter #{0} is locator-based and requires a nested request on the same connection to be materialized. This is not supported.</text>
                <arg>number</arg>
            </msg>
            
            <msg>
                <name>XN024.C</name>
                <text>Encountered an exception which terminated the connection, while reading from the stream specified by parameter #{0}. The Exception had this message: '{1}'.</text>
                <arg>number</arg>
                <arg>messageText</arg>
            </msg>
        </family>


        <family>
            <title>Class XRE: Replication Exceptions</title>

            <msg>
                <name>XRE00</name>
                <text>This LogFactory module does not support replication.</text>
            </msg>
            <msg>
                <name>XRE01</name>
                <text>The log received from the master is corrupted.</text>
            </msg>
            <msg>
                <name>XRE02</name>
                <text>Master and Slave at different versions. Unable to proceed with Replication.</text>
            </msg>
            <msg>
                <name>XRE03</name>
                <text>Unexpected replication error. See derby.log for details.</text>
            </msg>

            <msg>
                <name>XRE04.C.1</name>
                <text>Could not establish a connection to the peer of the replicated database '{0}' on address '{1}:{2}'.</text>
                <arg>dbname</arg>
                <arg>hostname</arg>
                <arg>portname</arg>
            </msg>

            <msg>
                <name>XRE04.C.2</name>
                <text>Connection lost for replicated database '{0}'.</text>
                <arg>dbname</arg>
            </msg>

            <msg>
                <name>XRE05.C</name>
                <text>The log files on the master and slave are not in synch for replicated database '{0}'. The master log instant is {1}:{2}, whereas the slave log instant is {3}:{4}. This is fatal for replication - replication will be stopped.</text>
                <arg>dbname</arg>
                <arg>masterfile</arg>
                <arg>masteroffset</arg>
                <arg>slavefile</arg>
                <arg>slaveoffset</arg>
            </msg>
            
            <msg>
                <name>XRE06</name>
                <text>The connection attempts to the replication slave for the database {0} exceeded the specified timeout period.</text>
                <arg>dbname</arg>
            </msg>
            
            <msg>
                <name>XRE07</name>
                <text>Could not perform operation because the database is not in replication master mode.</text>
            </msg>

            <msg>
                <name>XRE08</name>
                <text>Replication slave mode started successfully for database '{0}'. Connection refused because the database is in replication slave mode. </text>
                <arg>dbname</arg>
            </msg>

            <msg>
                <name>XRE09.C</name>
                <text>Cannot start replication slave mode for database '{0}'. The database has already been booted.</text>
                <arg>dbname</arg>
            </msg>

            <msg>
                <name>XRE10</name>
                <text>Conflicting attributes specified. See reference manual for attributes allowed in combination with replication attribute '{0}'.</text>
                <arg>attribute</arg>
            </msg>
            
            <msg>
                <name>XRE11.C</name>
                <text>Could not perform operation '{0}' because the database '{1}' has not been booted.</text>
                <arg>command</arg>
                <arg>dbname</arg>
            </msg>

            <msg>
                <name>XRE12</name>
                <text>Replication network protocol error for database '{0}'. Expected message type '{1}', but received type '{2}'.</text>
                <arg>dbname</arg>
                <arg>expectedtype</arg>
                <arg>receivedtype</arg>
            </msg>
            
            <msg>
                <name>XRE20.D</name>
                <text>Failover performed successfully for database '{0}', the database has been shutdown.</text>
                <arg>dbname</arg>
            </msg>
            
            <msg>
                <name>XRE21.C</name>
                <text>Error occurred while performing failover for database '{0}', Failover attempt was aborted.</text>
                <arg>dbname</arg>
            </msg>

            <msg>
                <name>XRE22.C</name>
                <text>Replication master has already been booted for database '{0}'</text>
                <arg>dbname</arg>
            </msg>
            
            <msg>
                <name>XRE23</name>
                <text>Replication master cannot be started since unlogged operations are in progress, unfreeze to allow unlogged operations to complete and restart replication</text>
            </msg>

            <msg>
                <name>XRE40</name>
                <text>Could not perform operation because the database is not in replication slave mode.</text>
            </msg>

            <msg>
                <name>XRE41.C</name>
                <text>Replication operation 'failover' or 'stopSlave' refused on the slave database because the connection with the master is working. Issue the 'failover' or 'stopMaster' operation on the master database instead.</text>
            </msg>

            <msg>
                <name>XRE42.C</name>
                <text>Replicated database '{0}' shutdown.</text>
                <arg>dbname</arg>
            </msg>

            <msg>
                <name>XRE43</name>
                <text>Unexpected error when trying to stop replication slave mode. To stop replication slave mode, use operation 'stopSlave' or 'failover'.</text>
            </msg>

        </family>

        <family>
            <title>Class XSAI: Store - access.protocol.interface</title>

            <msg>
                <name>XSAI2.S</name>
                <text>The conglomerate ({0}) requested does not exist.</text>
                <arg>conglomerateNumber</arg>
            </msg>

            <msg>
                <name>XSAI3.S</name>
                <text>Feature not implemented.</text>
            </msg>

        </family>


        <family>
            <title>Class XSAM: Store - AccessManager</title>

            <msg>
                <name>XSAM0.S</name>
                <text>Exception encountered while trying to boot module for '{0}'.</text>
                <arg>interfaceName</arg>
            </msg>

            <msg>
                <name>XSAM2.S</name>
                <text>There is no index or conglomerate with conglomerate id '{0}' to drop.</text>
                <arg>conglomID</arg>
            </msg>

            <msg>
                <name>XSAM3.S</name>
                <text>There is no index or conglomerate with conglomerate id '{0}'.</text>
                <arg>conglomID</arg>
            </msg>

            <msg>
                <name>XSAM4.S</name>
                <text>There is no sort called '{0}'.</text>
                <arg>sortName</arg>
            </msg>

            <msg>
                <name>XSAM5.S</name>
                <text>Scan must be opened and positioned by calling next() before making other calls.</text>
            </msg>

            <msg>
                <name>XSAM6.S</name>
                <arg>containerName</arg>
                <text>Record {2} on page {1} in container {0} not found.</text>
                <arg>pageNumber</arg>
                <arg>recordNumber</arg>
            </msg>

        </family>


        <family>
            <title>Class XSAS: Store - Sort</title>

            <msg>
                <name>XSAS0.S</name>
                <text>A scan controller interface method was called which is not appropriate for a scan on a sort.</text>
            </msg>

            <msg>
                <name>XSAS1.S</name>
                <text>An attempt was made to fetch a row before the beginning of a sort or after the end of a sort.</text>
            </msg>

            <msg>
                <name>XSAS3.S</name>
                <text>The type of a row inserted into a sort does not match the sort's template.</text>
            </msg>

            <msg>
                <name>XSAS6.S</name>
                <text>Could not acquire resources for sort.</text>
            </msg>

        </family>


        <family>
            <title>Class XSAX: Store - access.protocol.XA statement</title>

            <msg>
                <name>XSAX0.S</name>
                <text>XA protocol violation.</text>
            </msg>

            <msg>
                <name>XSAX1.S</name>
                <text>An attempt was made to start a global transaction with an Xid of an existing global transaction.</text>
            </msg>

        </family>


        <family>
            <title>Class XSCB: Store - BTree</title>

            <msg>
                <name>XSCB0.S</name>
                <text>Could not create container.</text>
            </msg>

            <msg>
                <name>XSCB1.S</name>
                <text>Container {0} not found.</text>
                <arg>containerName</arg>
            </msg>

            <msg>
                <name>XSCB2.S</name>
                <text>The required property {0} not found in the property list given to createConglomerate() for a btree secondary index.</text>
                <arg>propertyName</arg>
            </msg>

            <msg>
                <name>XSCB3.S</name>
                <text>Unimplemented feature.</text>
            </msg>

            <msg>
                <name>XSCB4.S</name>
                <text>A method on a btree open scan has been called prior to positioning the scan on the first row (i.e. no next() call has been made yet).  The current state of the scan is ({0}).</text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XSCB5.S</name>
                <text>During logical undo of a btree insert or delete the row could not be found in the tree.</text>
            </msg>

            <msg>
                <name>XSCB6.S</name>
                <text>Limitation: Record of a btree secondary index cannot be updated or inserted due to lack of space on the page.  Use the parameters derby.storage.pageSize and/or derby.storage.pageReservedSpace to work around this limitation.</text>
            </msg>

            <msg>
                <name>XSCB7.S</name>
                <text>An internal error was encountered during a btree scan - current_rh is null = {0}, position key is null = {1}.</text>
                <arg>trueOrFalse</arg>
                <arg>trueOrFalse</arg>
            </msg>

            <msg>
                <name>XSCB8.S</name>
                <text>The btree conglomerate {0} is closed.</text>
                <arg>conglomerateNumber</arg>
            </msg>

            <msg>
                <name>XSCB9.S</name>
                <text>Reserved for testing.</text>
            </msg>

        </family>


        <family>
            <title>Class XSCG0: Conglomerate</title>

            <msg>
                <name>XSCG0.S</name>
                <text>Could not create a template.</text>
            </msg>

        </family>


        <family>
            <title>Class XSCH: Heap</title>

            <msg>
                <name>XSCH0.S</name>
                <text>Could not create container.</text>
            </msg>

            <msg>
                <name>XSCH1.S</name>
                <text>Container {0} not found.</text>
                <arg>containerName</arg>
            </msg>

            <msg>
                <name>XSCH4.S</name>
                <text>Conglomerate could not be created.</text>
            </msg>

            <msg>
                <name>XSCH5.S</name>
                <text>In a base table there was a mismatch between the requested column number {0} and the maximum number of columns {1}.</text>
                <arg>number</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XSCH6.S</name>
                <text>The heap container with container id {0} is closed.</text>
                <arg>containerID</arg>
            </msg>

            <msg>
                <name>XSCH7.S</name>
                <text>The scan is not positioned.</text>
            </msg>

            <msg>
                <name>XSCH8.S</name>
                <text>The feature is not implemented.</text>
            </msg>

        </family>


        <family>
            <title>Class XSDA: RawStore - Data.Generic statement</title>

            <msg>
                <name>XSDA1.S</name>
                <text>An attempt was made to access an out of range slot on a page</text>
            </msg>

            <msg>
                <name>XSDA2.S</name>
                <text>An attempt was made to update a deleted record</text>
            </msg>

            <msg>
                <name>XSDA3.S</name>
                <text>Limitation: Record cannot be updated or inserted due to lack of space on the page. Use the parameters derby.storage.pageSize and/or derby.storage.pageReservedSpace to work around this limitation.</text>
            </msg>

            <msg>
                <name>XSDA4.S</name>
                <text>An unexpected exception was thrown</text>
            </msg>

            <msg>
                <name>XSDA5.S</name>
                <text>An attempt was made to undelete a record that is not deleted</text>
            </msg>

            <msg>
                <name>XSDA6.S</name>
                <text>Column {0} of row is null, it needs to be set to point to an object.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>XSDA7.S</name>
                <text>Restore of a serializable or SQLData object of class {0}, attempted to read more data than was originally stored</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>XSDA8.S</name>
                <text>Exception during restore of a serializable or SQLData object of class {0}</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>XSDA9.S</name>
                <text>Class not found during restore of a serializable or SQLData object of class {0}</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>XSDAA.S</name>
                <text>Illegal time stamp {0}, either time stamp is from a different page or of incompatible implementation</text>
                <arg>timestamp</arg>
            </msg>

            <msg>
                <name>XSDAB.S</name>
                <text>Cannot set a null time stamp.</text>
            </msg>

            <msg>
                <name>XSDAC.S</name>
                <text>Attempt to move either rows or pages from one container to another.</text>
            </msg>

            <msg>
                <name>XSDAD.S</name>
                <text>Attempt to move zero rows from one page to another.</text>
            </msg>

            <msg>
                <name>XSDAE.S</name>
                <text>Can only make a record handle for special record handle id.</text>
            </msg>

            <msg>
                <name>XSDAF.S</name>
                <text>Using special record handle as if it were a normal record handle.</text>
            </msg>

            <msg>
                <name>XSDAG.S</name>
                <text>The allocation nested top transaction cannot open the container.</text>
            </msg>

            <msg>
                <name>XSDAI.S</name>
                <text>Page {0} being removed is already locked for deallocation.</text>
                <arg>page</arg>
            </msg>

            <msg>
                <name>XSDAJ.S</name>
                <text>Exception during write of a serializable or SQLData object</text>
            </msg>

            <msg>
                <name>XSDAK.S</name>
                <text>Wrong page is gotten for record handle {0}.</text>
                <arg>recordHandle</arg>
            </msg>

            <msg>
                <name>XSDAL.S</name>
                <text>Record handle {0} unexpectedly points to overflow page.</text>
                <arg>recordHandle</arg>
            </msg>

            <msg>
                <name>XSDAM.S</name>
                <text>Exception during restore of a SQLData object of class {0}. The specified class cannot be instantiated.</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>XSDAN.S</name>
                <text>Exception during restore of a SQLData object of class {0}. The specified class encountered an illegal access exception.</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>XSDAO.S</name>
                <text>Internal error: page {0} attempted latched twice.</text>
                <arg>pageNumber</arg>
            </msg>

            <msg>
                <name>XSDAP.S</name>
                <text>Unexpected no space error while attempting to update a row on page {0}. Values of internal fields at time of error are as follows: slot = {2}, recordId = {3}, newColumnList = {4}, nextColumn = {5}, mode = {6}, nextPortionHandle = {7}, page dump = {1}.</text>
                <arg>pageId</arg>
                <arg>pageDump</arg>
                <arg>slot</arg>
                <arg>recordId</arg>
                <arg>columnList</arg>
                <arg>nextColumn</arg>
                <arg>updateMode</arg>
                <arg>nextPortionHandle</arg>
            </msg>

        </family>


        <family>
            <title>Class XSDB: RawStore - Data.Generic transaction</title>

            <msg>
                <name>XSDB0.D</name>
                <text>Unexpected exception on in-memory page {0}</text>
                <arg>page</arg>
            </msg>

            <msg>
                <name>XSDB1.D</name>
                <text>Unknown page format at page {0}</text>
                <arg>page</arg>
            </msg>

            <msg>
                <name>XSDB2.D</name>
                <text>Unknown container format at container {0} : {1}</text>
                <arg>containerName</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XSDB3.D</name>
                <text>Container information cannot change once written: was {0}, now {1}</text>
                <arg>number</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XSDB4.D</name>
                <text>Page {0} is at version {1}, the log file contains change version {2}, either there are log records of this page missing, or this page did not get written out to disk properly.</text>
                <arg>page</arg>
                <arg>versionNumber</arg>
                <arg>versionNumber</arg>
            </msg>

            <msg>
                <name>XSDB5.D</name>
                <text>Log has change record on page {0}, which is beyond the end of the container.</text>
                <arg>page</arg>
            </msg>

            <msg>
                <name>XSDB6.D</name>
                <text>Another instance of Derby may have already booted the database {0}.</text>
                <arg>databaseName</arg>
            </msg>

            <msg>
                <name>XSDB7.D</name>
                <text>Warning: Derby (instance {0}) is attempting to boot the database {1} even though Derby (instance {2}) may still be active.  Only one instance of Derby should boot a database at a time. Severe and non-recoverable corruption can result and may have already occurred.</text>
                <arg>derbyInstanceID</arg>
                <arg>databaseName</arg>
                <arg>derbyInstanceID</arg>
            </msg>

            <msg>
                <name>XSDB8.D</name>
                <text>Warning: Derby (instance {0}) is attempting to boot the database {1} even though Derby (instance {2}) may still be active.  Only one instance of Derby should boot a database at a time. Severe and non-recoverable corruption can result if 2 instances of Derby boot on the same database at the same time.  The derby.database.forceDatabaseLock=true property has been set, so the database will not boot until the db.lck is no longer present.  Normally this file is removed when the first instance of Derby to boot on the database exits, but it may be left behind in some shutdowns.  It will be necessary to remove the file by hand in that case.  It is important to verify that no other VM is accessing the database before deleting the db.lck file by hand.</text>
                <arg>derbyInstanceID</arg>
                <arg>databaseName</arg>
                <arg>derbyInstanceID</arg>
            </msg>

            <msg>
                <name>XSDB9.D</name>
                <text>Stream container {0} is corrupt.</text>
                <arg>containerName</arg>
            </msg>

            <msg>
                <name>XSDBA.D</name>
                <text>Attempt to allocate object {0} failed.</text>
                <arg>object</arg>
            </msg>

            <msg>
                <name>XSDBB.D</name>
                <text>Unknown page format at page {0}, page dump follows: {1} </text>
                <arg>page</arg>
                <arg>hexDump</arg>
            </msg>

            <msg>
                <name>XSDBC.D</name>
                <text>Write of container information to page 0 of container {0} failed.  See nested error for more information.  </text>
                <arg>container</arg>
            </msg>

        </family>


        <family>
            <title>Class XSDF: RawStore - Data.Filesystem statement</title>

            <msg>
                <name>XSDF0.S</name>
                <text>Could not create file {0} as it already exists.</text>
                <arg>fileName</arg>
            </msg>

            <msg>
                <name>XSDF1.S</name>
                <text>Exception during creation of file {0} for container</text>
                <arg>fileName</arg>
            </msg>

            <msg>
                <name>XSDF2.S</name>
                <text>Exception during creation of file {0} for container, file could not be removed.  The exception was: {1}.</text>
                <arg>fileName</arg>
                <arg>exceptionText</arg>
            </msg>

            <msg>
                <name>XSDF3.S</name>
                <text>Cannot create segment {0}.</text>
                <arg>segmentName</arg>
            </msg>

            <msg>
                <name>XSDF4.S</name>
                <text>Exception during remove of file {0} for dropped container, file could not be removed {1}.</text>
                <arg>fileName</arg>
                <arg>detailedException</arg>
            </msg>

            <msg>
                <name>XSDF6.S</name>
                <text>Cannot find the allocation page {0}.</text>
                <arg>page</arg>
            </msg>

            <msg>
                <name>XSDF7.S</name>
                <text>Newly created page failed to be latched {0}</text>
                <arg>pageKey</arg>
            </msg>

            <msg>
                <name>XSDF8.S</name>
                <text>Cannot find page {0} to reuse.</text>
                <arg>page</arg>
            </msg>

            <msg>
                <name>XSDFB.S</name>
                <text>Operation not supported by a read only database</text>
            </msg>

            <msg>
                <name>XSDFD.S</name>
                <text>Different page image read on 2 I/Os on Page {0}, first image has incorrect checksum, second image has correct checksum. Page images follows: {1} {2}</text>
                <arg>page</arg>
                <arg>hexDump</arg>
                <arg>hexDump</arg>
            </msg>

            <msg>
                <name>XSDFF.S</name>
                <text>The requested operation failed due to an unexpected exception.</text>
            </msg>

            <msg>
                <name>XSDFH.S</name>
                <text>Cannot backup the database, got an I/O Exception while writing to the backup container file {0}.</text>
                <arg>fileName</arg>
            </msg>

            <msg>
                <name>XSDFI.S</name>
                <text>Error encountered while trying to write data to disk during database recovery.  Check that the database disk is not full. If it is then delete unnecessary files, and retry connecting to the database.  It is also possible that the file system is read only, or the disk has failed, or some other problem with the media.  System encountered error while processing page {0}.</text>
                <arg>page</arg>
            </msg>
            <msg>
                <name>XSDFJ.S</name>
                <text>Error encountered while trying to remove database file {0}, as part of encrypting or decrypting database files. Incorrect file or directory ownership or permissions could cause remove of the file to fail.  Processes not controlled by Derby like backup or virus checkers could also be responsible.</text>
                <arg>fileName</arg>
            </msg>
            <msg>
                <name>XSDFK.S</name>
                <text>Error encountered while trying to remove a jar file {0} stored in the database. Incorrect file or directory ownership or permissions could cause remove of the file to fail.  Processes not controlled by Derby like backup or virus checkers could also be responsible.</text>
                <arg>fileName</arg>
            </msg>

        </family>


        <family>
            <title>Class XSDG: RawStore - Data.Filesystem database</title>

            <msg>
                <name>XSDG0.D</name>
                <text>Page {0} could not be read from disk.</text>
                <arg>page</arg>
            </msg>

            <msg>
                <name>XSDG1.D</name>
                <text>Page {0} could not be written to disk, please check if the disk is full, or if a file system limit, such as a quota or a maximum file size, has been reached.</text>
                <arg>page</arg>
            </msg>

            <msg>
                <name>XSDG2.D</name>
                <text>Invalid checksum on Page {0}, expected={1}, on-disk version={2}, page dump follows: {3}</text>
                <arg>page</arg>
                <arg>number</arg>
                <arg>number</arg>
                <arg>hexDump</arg>
            </msg>

            <msg>
                <name>XSDG3.D</name>
                <text>Meta-data for {0} could not be accessed to {1} {2}</text>
                <arg>containerName</arg>
                <arg>type</arg>
                <arg>file</arg>
            </msg>

            <msg>
                <name>XSDG4.D</name>
                <text>Unrecoverable internal error encountered while attempting to read low level metadata about the table or index. Please provide your support organization with the following exception information: Failed: arraycopy of embryonic page byte[{0}] to container information byte[{1}]. Values of variables and constants: MAX_BORROWED_SPACE: {2}, BORROWED_SPACE_OFFSET({3}) + BORROWED_SPACE_LENG({4}) = {5}; arraycopylength: {6}; embryonic page {7}.</text>
                <arg>pageArrayLength</arg>
                <arg>containerArrayLength</arg>
                <arg>maxBorrowedSpace</arg>
                <arg>borrowedSpaceOffset</arg>
                <arg>borrowedSpaceLength</arg>
                <arg>arraycopySourcePosition</arg>
                <arg>maxBorrowableSpace</arg>
                <arg>hexdump</arg>
            </msg>

            <msg>
                <name>XSDG5.D</name>
                <text>Database is not in create mode when createFinished is called.</text>
            </msg>

            <msg>
                <name>XSDG6.D</name>
                <text>Data segment directory not found in {0} backup during restore. Please make sure that backup copy is the right one and it is not corrupted.</text>
                <arg>directoryPath</arg>
            </msg>

            <msg>
                <name>XSDG7.D</name>
                <text>Directory {0} could not be removed during restore. Please make sure that permissions are correct.</text>
                <arg>directoryName</arg>
            </msg>

            <msg>
                <name>XSDG8.D</name>
                <text>Unable to copy directory '{0}' to '{1}' during restore. Please make sure that there is enough space and permissions are correct. </text>
                <arg>directoryName</arg>
                <arg>directoryName</arg>
            </msg>

            <msg>
                <name>XSDG9.D</name>
                <text>Derby thread received an interrupt during a disk I/O operation, please check your application for the source of the interrupt.</text>
            </msg>

        </family>


        <family>
            <title>Class XSLA: RawStore - Log.Generic database exceptions</title>

            <msg>
                <name>XSLA0.D</name>
                <text>Cannot flush the log file to disk {0}.</text>
                <arg>filePath</arg>
            </msg>

            <msg>
                <name>XSLA1.D</name>
                <text>Log Record has been sent to the stream, but it cannot be applied to the store (Object {0}).  This may cause recovery problems also.</text>
                <arg>object</arg>
            </msg>

            <msg>
                <name>XSLA2.D</name>
                <text>System will shutdown, got I/O Exception while accessing log file.</text>
            </msg>

            <msg>
                <name>XSLA3.D</name>
                <text>Log Corrupted, has invalid data in the log stream.</text>
            </msg>

            <msg>
                <name>XSLA4.D</name>
                <text>Error encountered when attempting to write the transaction recovery log. Most likely the disk holding the recovery log is full. If the disk is full, the only way to proceed is to free up space on the disk by either expanding it or deleting files not related to Derby. It is also possible that the file system and/or disk where the Derby transaction log resides is read-only. The error can also be encountered if the disk or file system has failed.</text>
            </msg>

            <msg>
                <name>XSLA5.D</name>
                <text>Cannot read log stream for some reason to rollback transaction {0}.</text>
                <arg>transactionID</arg>
            </msg>

            <msg>
                <name>XSLA6.D</name>
                <text>Cannot recover the database.</text>
            </msg>

            <msg>
                <name>XSLA7.D</name>
                <text>Cannot redo operation {0} in the log.</text>
                <arg>operation</arg>
            </msg>

            <msg>
                <name>XSLA8.D</name>
                <text>Cannot rollback transaction {0}, trying to compensate {1} operation with {2}</text>
                <arg>transactionID</arg>
                <arg>undoableOperation</arg>
                <arg>compensationOperation</arg>
            </msg>

            <msg>
                <name>XSLAA.D</name>
                <text>The store has been marked for shutdown by an earlier exception.</text>
            </msg>

            <msg>
                <name>XSLAB.D</name>
                <text>Cannot find log file {0}, please make sure your logDevice property is properly set with the correct path separator for your platform.</text>
                <arg>logfileName</arg>
            </msg>

            <msg>
                <name>XSLAC.D</name>
                <text>Database at {0} has a format incompatible with the current version of software. It may have been created by or upgraded by a later version.</text>
                <arg>directoryPath</arg>
            </msg>

            <msg>
                <name>XSLAD.D</name>
                <text>Log Record at instant {2} in log file {3} corrupted. Expected log record length {0}, real length {1}.</text>
                <arg>length</arg>
                <arg>length</arg>
                <arg>logInstant</arg>
                <arg>logfileName</arg>
            </msg>

            <msg>
                <name>XSLAE.D</name>
                <text>Control file at {0} cannot be written or updated.</text>
                <arg>fileName</arg>
            </msg>

            <msg>
                <name>XSLAF.D</name>
                <text>A Read Only database was created with dirty data buffers.</text>
            </msg>

            <msg>
                <name>XSLAH.D</name>
                <text>A Read Only database is being updated.</text>
            </msg>

            <msg>
                <name>XSLAI.D</name>
                <text>Cannot log the checkpoint log record</text>
            </msg>

            <msg>
                <name>XSLAJ.D</name>
                <text>The logging system has been marked to shut down due to an earlier problem and will not allow any more operations until the system shuts down and restarts.</text>
            </msg>

            <msg>
                <name>XSLAK.D</name>
                <text>Database has exceeded largest log file number {0}.</text>
                <arg>number</arg>
            </msg>

            <msg>
                <name>XSLAL.D</name>
                <text>Log record size {2} exceeded the maximum allowable log file size {3}. Error encountered in log file {0}, position {1}.</text>
                <arg>logfileName</arg>
                <arg>position</arg>
                <arg>size</arg>
                <arg>size</arg>
            </msg>

            <msg>
                <name>XSLAM.D</name>
                <text>Cannot verify database format at {1} due to IOException: {0}</text>
                <arg>exceptionDetails</arg>
                <arg>directoryPath</arg>
            </msg>

            <msg>
                <name>XSLAN.D</name>
                <text>Database at {0} has an incompatible format with the current version of the software.  The database was created by or upgraded by version {1}.</text>
                <arg>directoryPath</arg>
                <arg>versionNumber</arg>
            </msg>

            <msg>
                <name>XSLAO.D</name>
                <text>Recovery failed unexpected problem: {0}.</text>
                <arg>detailedMessage</arg>
            </msg>

            <msg>
                <name>XSLAP.D</name>
                <text>Database at {0} is at version {1}. Beta databases cannot be upgraded.</text>
                <arg>directoryPath</arg>
                <arg>versionNumber</arg>
            </msg>

            <msg>
                <name>XSLAQ.D</name>
                <text>Cannot create log file at directory {0}.</text>
                <arg>directoryName</arg>
            </msg>

            <msg>
                <name>XSLAR.D</name>
                <text>Unable to copy log file '{0}' to '{1}' during restore. Please make sure that there is enough space and permissions are correct. </text>
                <arg>logfileName</arg>
                <arg>logFileName</arg>
            </msg>

            <msg>
                <name>XSLAS.D</name>
                <text>Log directory {0} not found in backup during restore. Please make sure that backup copy is the correct one and it is not corrupted.</text>
                <arg>directoryName</arg>
            </msg>

            <msg>
                <name>XSLAT.D</name>
                <text>The log directory '{0}' exists. The directory might belong to another database. Check that the location specified for the logDevice attribute is correct.</text>
                <arg>directoryName</arg>
            </msg>

        </family>


        <family>
            <title>Class XSLB: RawStore - Log.Generic statement exceptions</title>

            <msg>
                <name>XSLB1.S</name>
                <text>Log operation {0} encounters error writing itself out to the log stream, this could be caused by an errant log operation or internal log buffer full due to excessively large log operation.</text>
                <arg>logOperation</arg>
            </msg>

            <msg>
                <name>XSLB2.S</name>
                <text>Log operation {0} logging excessive data, it filled up the internal log buffer.</text>
                <arg>logOperation</arg>
            </msg>

            <msg>
                <name>XSLB5.S</name>
                <text>Illegal truncationLWM instant {1} for truncation point {0}. Legal range is from {2} to {3}.</text>
                <arg>logInstant</arg>
                <arg>truncationPoint</arg>
                <arg>logInstant</arg>
                <arg>logInstant</arg>
            </msg>

            <msg>
                <name>XSLB6.S</name>
                <text>Trying to log a 0 or -ve length log Record.</text>
            </msg>

            <msg>
                <name>XSLB8.S</name>
                <text>Trying to reset a scan to {0}, beyond its limit of {1}.</text>
                <arg>logInstant</arg>
                <arg>logInstant</arg>
            </msg>

            <msg>
                <name>XSLB9.S</name>
                <text>Cannot issue any more change, log factory has been stopped.</text>
            </msg>

        </family>


        <family>
            <title>Class XSRS: RawStore - protocol.Interface statement</title>

            <msg>
                <name>XSRS0.S</name>
                <text>Cannot freeze the database after it is already frozen.</text>
            </msg>

            <msg>
                <name>XSRS1.S</name>
                <text>Cannot backup the database to {0}, which is not a directory.</text>
                <arg>directoryPath</arg>
            </msg>

            <msg>
                <name>XSRS4.S</name>
                <text>Error renaming file (during backup) from {0} to {1}.</text>
                <arg>fileName</arg>
                <arg>fileName</arg>
            </msg>

            <msg>
                <name>XSRS5.S</name>
                <text>Error copying file (during backup) from {0} to {1}.</text>
                <arg>path</arg>
                <arg>path</arg>
            </msg>

            <msg>
                <name>XSRS6.S</name>
                <text>Cannot create backup directory {0}.</text>
                <arg>directoryName</arg>
            </msg>

            <msg>
                <name>XSRS7.S</name>
                <text>Backup caught unexpected exception.</text>
            </msg>

            <msg>
                <name>XSRS8.S</name>
                <text>Log Device can only be set during database creation time, it cannot be changed on the fly.</text>
            </msg>

            <msg>
                <name>XSRS9.S</name>
                <text>Record {0} no longer exists</text>
                <arg>recordName</arg>
            </msg>

            <msg>
                <name>XSRSA.S</name>
                <text>Cannot backup the database when unlogged operations are uncommitted. Please commit the transactions with backup blocking operations. </text>
            </msg>

            <msg>
                <name>XSRSB.S</name>
                <text>Backup cannot be performed in a transaction with uncommitted unlogged operations.</text>
            </msg>

            <msg>
                <name>XSRSC.S</name>
                <text>Cannot backup the database to {0}, it is a database directory.</text>
                <arg>directoryLocation</arg>
            </msg>

        </family>


        <family>
            <title>Class XSTA2: XACT_TRANSACTION_ACTIVE</title>

            <msg>
                <name>XSTA2.S</name>
                <text>A transaction was already active, when attempt was made to make another transaction active.</text>
            </msg>

        </family>


        <family>
            <title>Class XSTB: RawStore - Transactions.Basic system</title>

            <msg>
                <name>XSTB0.M</name>
                <text>An exception was thrown during transaction abort.</text>
            </msg>

            <msg>
                <name>XSTB2.M</name>
                <text>Cannot log transaction changes, maybe trying to write to a read only database.</text>
            </msg>

            <msg>
                <name>XSTB3.M</name>
                <text>Cannot abort transaction because the log manager is null, probably due to an earlier error.</text>
            </msg>

            <msg>
                <name>XSTB5.M</name>
                <text>Creating database with logging disabled encountered unexpected problem.</text>
            </msg>

            <msg>
                <name>XSTB6.M</name>
                <text>Cannot substitute a transaction table with another while one is already in use.</text>
            </msg>

        </family>


        <family>
            <title>Class XXXXX: No SQLSTATE</title>

            <msg>
                <name>XXXXX.C.6</name>
                <text>Normal database session close.</text>
            </msg>

        </family>

    </section>


<!-- 
This section contains all of the internationalized messages which are
undocumented. This includes messages with handles which are
pseudo-SQLStates, documented in SQLState.java. This also includes
messages with non-SQLState handles which are documented in
MessageId.java.
-->

    <section>
        <desc>Undocumented messages with pseudo-SQLStates or no SQLStates</desc>


        <family>
            <title>Undocumented Pseudo-SQLStates from SQLState.java</title>

            <msg>
                <name>02000</name>
                <text>No row was found for FETCH, UPDATE or DELETE; or the result of a query is an empty table.</text>
            </msg>

            <msg>
                <name>10000</name>
                <text>Encountered error while evaluating XML query expression for {0} operator: {1}</text>
                <arg>operatorName</arg>
                <arg>detailedError</arg>
            </msg>

            <msg>
                <name>42Z00.U</name>
                <text>Java method call or field reference</text>
            </msg>

            <msg>
                <name>42Z01.U</name>
                <text>Untyped</text>
            </msg>

            <msg>
                <name>42Z10</name>
                <text>The Java class bound to a user defined type may not be a class used internally by Derby: '{0}'.</text>
                <arg>javaClassName</arg>
            </msg>

            <msg>
                <name>42Z12.U</name>
                <text>Internal error: Invalid attempt to access a {0} as a stream</text>
                <arg>dataType</arg>
            </msg>

            <msg>
                <name>42Z30.U</name>
                <text>time spent in this ResultSet =</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z31.U</name>
                <text>time spent in this ResultSet and below =</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z32.U</name>
                <text>total time breakdown: </text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z33.U</name>
                <text>constructor time (milliseconds) =</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z34.U</name>
                <text>open time (milliseconds) =</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z35.U</name>
                <text>next time (milliseconds) =</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z36.U</name>
                <text>close time (milliseconds) =</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z37.U</name>
                <text>None</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <comment>This is a start or stop position for a scan.</comment>
            </msg>

            <msg>
                <name>42Z38.U</name>
                <text>Positioning information not available because this ResultSet was never opened.</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z39.U</name>
                <text>Unexpected exception {0} getting positioner.</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>exceptionMessage</arg>
            </msg>

            <msg>
                <name>42Z40.U</name>
                <text>{0} on first {1} column(s).</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>searchOperator</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>42Z41.U</name>
                <text>Ordered null semantics on the following columns: </text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z42.U</name>
                <text>Column Id</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z43.U</name>
                <text>Operator</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z44.U</name>
                <text>Ordered nulls</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z45.U</name>
                <text>Unknown return value</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z46.U</name>
                <text>Negate comparison result</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z47.U</name>
                <text>Getting the query plan as a String is not currently supported for {0}</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>42Z48.U</name>
                <text>Column[{0}][{1}] Id</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>term</arg>
                <arg>columnNumber</arg>
            </msg>

            <msg>
                <name>42Z54.U</name>
                <text>This exception stops the statement after parsing - no further processing is needed.</text>
            </msg>

            <msg>
                <name>42Z55.U</name>
                <text>Execution stopped after parsing by StopAfterParsing debug flag.</text>
            </msg>

            <msg>
                <name>42Z56.U</name>
                <text>Execution stopped after binding by StopAfterBinding debug flag.</text>
            </msg>

            <msg>
                <name>42Z57.U</name>
                <text>Execution stopped after optimizing by StopAfterOptimizing debug flag.</text>
            </msg>

            <msg>
                <name>42Z58.U</name>
                <text>Execution stopped after generating by StopAfterGenerating debug flag.</text>
            </msg>

            <msg>
                <name>42Z80.U</name>
                <text>serializable</text>
                <comment>A transaction isolation level. See http://en.wikipedia.org/wiki/Isolation_%28database_systems%29</comment>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z81.U</name>
                <text>read committed</text>
                <comment>A transaction isolation level. See http://en.wikipedia.org/wiki/Isolation_%28database_systems%29</comment>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z82.U</name>
                <text>exclusive</text>
                <comment>A lock mode.</comment>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <comment>This is shorthand for "exclusive lock".</comment>
            </msg>

            <msg>
                <name>42Z83.U</name>
                <text>instantaneous share</text>
                <comment>A lock mode.</comment>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z84.U</name>
                <text>share</text>
                <comment>A lock mode.</comment>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z85.U</name>
                <text>table</text>
                <comment>A lock granularity.</comment>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z86.U</name>
                <text>row</text>
                <comment>A lock granularity.</comment>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z87.U</name>
                <text>share table</text>
                <comment>Lock mode and granularity.</comment>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>42Z88.U</name>
                <text>share row</text>
                <comment>Lock mode and granularity.</comment>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X00.U</name>
                <text>Attached to</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X01.U</name>
                <text>Begin Subquery Number</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X02.U</name>
                <text>Any ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X03.U</name>
                <text>Number of opens</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X04.U</name>
                <text>Rows seen</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X05.U</name>
                <text>Source result set</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X06.U</name>
                <text>End Subquery Number</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X07.U</name>
                <text>optimizer estimated row count: {0,number,###########0.00}</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>number</arg>
            </msg>

            <msg>
                <name>43X08.U</name>
                <text>optimizer estimated cost: {0,number,###########0.00}</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>number</arg>
            </msg>

            <msg>
                <name>43X09.U</name>
                <text>seconds</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X11.U</name>
                <text>Node</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X12.U</name>
                <text>{0} not currently implemented for {1}</text>
                <arg>methodName</arg>
                <arg>className</arg>
            </msg>

            <msg>
                <name>43X13.U</name>
                <text>Delete ResultSet using</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X14.U</name>
                <text>table locking</text>
                <comment>Lock granularity.</comment>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X15.U</name>
                <text>row locking</text>
                <comment>Lock granularity.</comment>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X16.U</name>
                <text>deferred</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <comment>This is shorthand for "deferred update".</comment>
            </msg>

            <msg>
                <name>43X17.U</name>
                <text>Rows deleted</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X18.U</name>
                <text>Indexes updated</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X19.U</name>
                <text>Delete</text>
            </msg>

            <msg>
                <name>43X20.U</name>
                <text>Distinct Scalar Aggregate ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X21.U</name>
                <text>Rows input</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X22.U</name>
                <text>Distinct Scalar Aggregate</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X23.U</name>
                <text>Distinct Scan ResultSet for {0} using {1} {2}</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>tableName</arg>
                <arg>constraintOrIndex</arg>
                <arg>constraintOrIndexName</arg>
            </msg>

            <msg>
                <name>43X26.U</name>
                <text>Distinct Scan ResultSet for {0}</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>43X27.U</name>
                <text>at {0} isolation level using {1} locking</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>isolationLevel</arg>
                <arg>lockString</arg>
            </msg>

            <msg>
                <name>43X28.U</name>
                <text>scan information</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X29.U</name>
                <text>Distinct column is column number</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X30.U</name>
                <text>Distinct columns are column numbers</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X31.U</name>
                <text>Hash table size</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X32.U</name>
                <text>Rows filtered</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X33.U</name>
                <text>next time in milliseconds/row</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X34.U</name>
                <text>start position</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X35.U</name>
                <text>stop position</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X36.U</name>
                <text>scan qualifiers</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X37.U</name>
                <text>next qualifiers</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X38.U</name>
                <text>on {0} using {1}</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>tableName</arg>
                <arg>indexName</arg>
            </msg>

            <msg>
                <name>43X39.U</name>
                <text>Distinct Scan</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X40.U</name>
                <text>Sort information</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X41.U</name>
                <text>Grouped Aggregate ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X42.U</name>
                <text>Has distinct aggregate</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X43.U</name>
                <text>In sorted order</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X44.U</name>
                <text>Grouped Aggregate</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X45.U</name>
                <text>Hash Exists Join</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X46.U</name>
                <text>Hash Exists Join ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X47.U</name>
                <text>Hash Join</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X48.U</name>
                <text>Hash Join ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X49.U</name>
                <text>Hash Left Outer Join</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X50.U</name>
                <text>Hash Left Outer Join ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X51.U</name>
                <text>Hash Scan ResultSet for {0} using {1} {2}</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>tableName</arg>
                <arg>constraintOrIndex</arg>
                <arg>constraintOrIndexName</arg>
            </msg>

            <msg>
                <name>43X52.U</name>
                <text>Hash Scan ResultSet for {0}</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>43X53.U</name>
                <text>Hash key is column number</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X54.U</name>
                <text>Hash keys are column numbers</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X55.U</name>
                <text>Hash Scan</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X56.U</name>
                <text>Attached subqueries</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X57.U</name>
                <text>Hash Table ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X58.U</name>
                <text>Hash Table</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X59.U</name>
                <text>all</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <comment>Shorthand for "all columns".</comment>
            </msg>

            <msg>
                <name>43X60.U</name>
                <text>Index Row to Base Row ResultSet for {0}</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>43X61.U</name>
                <text>Columns accessed from heap</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X62.U</name>
                <text>for {0}</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>43X63.U</name>
                <text>Index Row to Base Row</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X64.U</name>
                <text>insert mode: bulk insert</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X65.U</name>
                <text>insert mode: normal (unable to perform bulk insert due to non-empty table)</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X66.U</name>
                <text>insert mode: normal</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X67.U</name>
                <text>Insert ResultSet using</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X68.U</name>
                <text>Rows inserted</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X69.U</name>
                <text>Insert</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X70.U</name>
                <text>Join</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X71.U</name>
                <text>Last Key Index Scan ResultSet for {0} using index {1}</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>tableName</arg>
                <arg>indexName</arg>
            </msg>

            <msg>
                <name>43X72.U</name>
                <text>at {0} isolation level using {1} locking chosen by the optimizer</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>isolationLevel</arg>
                <arg>lockString</arg>
            </msg>

            <msg>
                <name>43X73.U</name>
                <text>Table Scan</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X74.U</name>
                <text>Index Scan</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X75.U</name>
                <text>on {0}</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>43X76.U</name>
                <text>Materialized ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X77.U</name>
                <text>temporary conglomerate creation time (milliseconds)</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X78.U</name>
                <text>temporary conglomerate fetching time (milliseconds)</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X79.U</name>
                <text>Rows seen from the left</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X80.U</name>
                <text>Rows seen from the right</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X81.U</name>
                <text>Rows returned</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X82.U</name>
                <text>Left result set</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X83.U</name>
                <text>Right result set</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X84.U</name>
                <text>Nested Loop Exists Join</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X85.U</name>
                <text>Nested Loop Exists Join ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X86.U</name>
                <text>Nested Loop Join</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X87.U</name>
                <text>Nested Loop Join ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X88.U</name>
                <text>Empty right rows returned</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X89.U</name>
                <text>Nested Loop Left Outer Join</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X90.U</name>
                <text>Nested Loop Left Outer Join ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X91.U</name>
                <text>Normalize ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X92.U</name>
                <text>Once ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X93.U</name>
                <text>Project-Restrict ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X94.U</name>
                <text>restriction</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X95.U</name>
                <text>projection</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X96.U</name>
                <text>restriction time (milliseconds)</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X97.U</name>
                <text>projection time (milliseconds)</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X98.U</name>
                <text>Project Restrict</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X99.U</name>
                <text>Row ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X9A.U</name>
                <text>Row Count ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X9B.U</name>
                <text>Row Count</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43X9C.U</name>
                <text>Window ResultSet: </text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y00.U</name>
                <text>Scalar Aggregate ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y01.U</name>
                <text>Index Key Optimization</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y02.U</name>
                <text>Scalar Aggregate</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y03.U</name>
                <text>Scroll Insensitive ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y04.U</name>
                <text>Number of reads from hash table</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y05.U</name>
                <text>Number of writes to hash table</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y06.U</name>
                <text>Sort ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y07.U</name>
                <text>Eliminate duplicates</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y08.U</name>
                <text>Sort</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y09.U</name>
                <text>Index Scan ResultSet for {0} using {1} {2}</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>tableName</arg>
                <arg>constraintOrIndex</arg>
                <arg>constraintOrIndexName</arg>
            </msg>

            <msg>
                <name>43Y10.U</name>
                <text>Table Scan ResultSet for {0}</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>tableName</arg>
            </msg>

            <msg>
                <name>43Y11.U</name>
                <text>Actual locking used: table level locking.</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y12.U</name>
                <text>Fetch Size</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y13.U</name>
                <text>qualifiers</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y14.U</name>
                <text>Union ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y16.U</name>
                <text>Update ResultSet using {0} locking</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>tableOrRow</arg>
            </msg>

            <msg>
                <name>43Y17.U</name>
                <text>Rows updated</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y19.U</name>
                <text>VTI ResultSet for {0}</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>javaClassName</arg>
            </msg>

            <msg>
                <name>43Y20.U</name>
                <text>VTI</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y21.U</name>
                <text>Materialized subqueries</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y22.U</name>
                <text>Statement Name</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y23.U</name>
                <text>Statement Text</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y24.U</name>
                <text>Parse Time</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y25.U</name>
                <text>Bind Time</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y26.U</name>
                <text>Optimize Time</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y27.U</name>
                <text>Generate Time</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y28.U</name>
                <text>Compile Time</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y29.U</name>
                <text>Execute Time</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y30.U</name>
                <text>Begin Compilation Timestamp</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y31.U</name>
                <text>End Compilation Timestamp</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y32.U</name>
                <text>Begin Execution Timestamp</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y33.U</name>
                <text>End Execution Timestamp</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y44.U</name>
                <text>Statement Execution Plan Text</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y45.U</name>
                <text>Run Time 100%, {0} seconds</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>number</arg>
            </msg>

            <msg>
                <name>43Y46.U</name>
                <text>Insert VTI ResultSet</text>
            </msg>

            <msg>
                <name>43Y47.U</name>
                <text>Delete VTI ResultSet</text>
            </msg>

            <msg>
                <name>43Y49.U</name>
                <text>Insert VTI</text>
            </msg>

            <msg>
                <name>43Y50.U</name>
                <text>Delete VTI</text>
            </msg>

            <msg>
                <name>43Y51.U</name>
                <text>Delete Cascade ResultSet</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y52.U</name>
                <text>Delete Cascade ResultSet using</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y53.U</name>
                <text>Referential Actions On Dependent Tables</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y54.U</name>
                <text>Begin Referential Action On Dependent Table Number</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y55.U</name>
                <text>End Referential Action On Dependent Table Number</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
            </msg>

            <msg>
                <name>43Y56.U</name>
                <text>User supplied optimizer overrides on {0} are {1}</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>tableName</arg>
                <arg>userSuppliedOptimizerOverrides</arg>
            </msg>

            <msg>
                <name>43Y57.U</name>
                <text>User supplied optimizer overrides for join are {0}</text>
                <comment>Translators: This is part of query plan printout; the string is complete as is.</comment>
                <arg>userSuppliedOptimizerOverrides</arg>
            </msg>

            <msg>
                <name>44X00.U</name>
                <text>SQL Type Name</text>
            </msg>

            <msg>
                <name>46001</name>
                <text>Exception while accessing jar file using URL '{0}'.</text>
                <arg>url</arg>
            </msg>

            <msg>
                <name>46J01</name>
                <text>Java method signature has invalid format.</text>
            </msg>

            <msg>
                <name>46J02</name>
                <text>Java method signature contains incorrect number ({0}) of parameters, expected {1}.</text>
                <arg>number</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>54002</name>
                <text>A string constant starting with '{0}' is too long.</text>
                <arg>prefix</arg>
            </msg>

            <msg>
                <name>54004</name>
                <text>SELECT statement has too many items in GROUP BY, ORDER BY or SELECT list.</text>
            </msg>

            <msg>
                <name>54006</name>
                <text>The length resulting from {0} operation is greater than {1}.</text>
                <arg>operator</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>54008</name>
                <text>The CREATE INDEX statement specifies too many columns (16 is the maximum).</text>
            </msg>

            <msg>
                <name>54011</name>
                <text>Too many columns ({0}) were specified for  table or view {1}. The limit is {2}.</text>
                <arg>number</arg>
                <arg>tableOrViewName</arg>
                <arg>number</arg>
            </msg>

            <msg>
                <name>54038</name>
                <text>Maximum depth of nested triggers was exceeded.</text>
            </msg>

            <!-- Message BIN01 used in SQLBinary.java -->
            <msg>
                <name>BIN01</name>
                <text>(Binary data value not displayed)</text>
            </msg>

            <msg>
                <name>S0022</name>
                <text>Column '{0}' not found.</text>
                <arg>columnName</arg>
            </msg>

            <msg>
                <name>XJ001.U</name>
                <text>Java exception: '{1}: {0}'.</text>
                <arg>errorMessage</arg>
                <arg>exceptionClassName</arg>
            </msg>

            <msg>
                <name>XJ050.U</name>
                <text>Database requires upgrade from version {0}, set the attribute 'upgrade=true' on the JDBC connection URL to allow upgrade to version {1}.</text>
                <arg>oldVersion</arg>
                <arg>newVersion</arg>
            </msg>

            <msg>
                <name>XJ082.U</name>
                <text>BLOB/CLOB values are not allowed as method parameters or receiver.</text>
            </msg>

            <msg>
                <name>XJ083.U</name>
                <text>'{0}' not allowed because the ResultSet is not an updatable ResultSet. </text>
                <arg>operation</arg>
            </msg>

            <msg>
                <name>XJ084.U</name>
                <text>Column does not correspond to a column in the base table. Cannot issue '{0}' on this column.</text>
                <arg>methodName</arg>
            </msg>

            <msg>
                <name>XML00</name>
                <text>Failed to locate '{0}' API or implementation classes.  XML operations are not permitted unless these classes are in your classpath.</text>
                <arg>xmlPackageName</arg>
            </msg>

            <msg>
                <name>XML01</name>
                <text>Encountered unexpected error while processing XML: {0}</text>
                <arg>errorMessage</arg>
            </msg>

            <msg>
                <name>XN002.U</name>
                <text>SECTKN was not returned.</text>
            </msg>

            <msg>
                <name>XSAJ0.U</name>
                <text>Scan type</text>
            </msg>

            <msg>
                <name>XSAJ1.U</name>
                <text>Number of pages visited</text>
            </msg>

            <msg>
                <name>XSAJ2.U</name>
                <text>Number of rows visited</text>
            </msg>

            <msg>
                <name>XSAJ3.U</name>
                <text>Number of deleted rows visited</text>
            </msg>

            <msg>
                <name>XSAJ4.U</name>
                <text>Number of rows qualified</text>
            </msg>

            <msg>
                <name>XSAJ5.U</name>
                <text>Number of columns fetched</text>
            </msg>

            <msg>
                <name>XSAJ6.U</name>
                <text>Bit set of columns fetched</text>
            </msg>

            <msg>
                <name>XSAJ7.U</name>
                <text>Tree height</text>
            </msg>

            <msg>
                <name>XSAJ8.U</name>
                <text>Sort type</text>
            </msg>

            <msg>
                <name>XSAJA.U</name>
                <text>Number of rows input</text>
            </msg>

            <msg>
                <name>XSAJB.U</name>
                <text>Number of rows output</text>
            </msg>

            <msg>
                <name>XSAJC.U</name>
                <text>Number of merge runs</text>
            </msg>

            <msg>
                <name>XSAJD.U</name>
                <text>Size of merge runs</text>
            </msg>

            <msg>
                <name>XSAJE.U</name>
                <text>All</text>
            </msg>

            <msg>
                <name>XSAJF.U</name>
                <text>btree</text>
                <comment>This is a type of conglomerate.</comment>
            </msg>

            <msg>
                <name>XSAJG.U</name>
                <text>heap</text>
                <comment>This is a type of conglomerate.</comment>
            </msg>

            <msg>
                <name>XSAJH.U</name>
                <text>sort</text>
            </msg>

            <msg>
                <name>XSAJI.U</name>
                <text>external</text>
                <comment>This is a type of sort.</comment>
            </msg>

            <msg>
                <name>XSAJJ.U</name>
                <text>internal</text>
                <comment>This is a type of sort.</comment>
            </msg>

        </family>


        <family>
            <title>Undocumented Authentication Messages from MessageId.java</title>

            <msg>
                <name>A001</name>
                <text>Fatal: There is no Authentication Service for the system</text>
            </msg>

            <msg>
                <name>A002</name>
                <text>Fatal: There is no Authentication Service for the database</text>
            </msg>

            <msg>
                <name>A011</name>
                <text>Warning: No LDAP Server/Host name mentioned in {0} property; assuming localhost:389</text>
                <arg>propertyName</arg>
            </msg>

            <msg>
                <name>A020</name>
                <text>Invalid authentication.</text>
            </msg>

        </family>


        <family>
            <title>Undocumented Class Manager Messages from MessageId.java</title>

            <msg>
                <name>C000</name>
                <text>Wrote class {0} to file {1}. Please provide support with the file and the following exception information: {2}</text>
                <arg>className</arg>
                <arg>fileName</arg>
                <arg>errorMessage</arg>
            </msg>

            <msg>
                <name>C001</name>
                <text>Class {0} has an unknown certificate type in jar {1}, expecting X509 certificate.</text>
                <arg>className</arg>
                <arg>jarName</arg>
            </msg>

            <msg>
                <name>C002</name>
                <text>Security exception thrown accessing class {0} in jar {1} : {2}</text>
                <arg>className</arg>
                <arg>jarName</arg>
                <arg>errorMessage</arg>
            </msg>

            <msg>
                <name>C003</name>
                <text>Exception loading database jar {0} - {1}</text>
                <arg>jarName</arg>
                <arg>errorMessage</arg>
            </msg>

            <msg>
                <name>C004</name>
                <text>Stale class loader for class {0}</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>C005</name>
                <text>Database Class Loader started - derby.database.classpath='{0}'</text>
                <arg>classpath</arg>
            </msg>

            <msg>
                <name>C006</name>
                <text>Loaded {0} from database jar {1}</text>
                <arg>className</arg>
                <arg>jarName</arg>
            </msg>

            <msg>
                <name>C007</name>
                <text>Exception loading class {0} from jar {1} - {2}</text>
                <arg>className</arg>
                <arg>jarName</arg>
                <arg>detailedError</arg>
            </msg>

            <msg>
                <name>C008</name>
                <text>Exception loading class {0}: {1}</text>
                <arg>className</arg>
                <arg>detailedError</arg>
            </msg>

        </family>


        <family>
            <title>Undocumented Raw Store Messages from MessageId.java</title>

            <msg>
                <name>D000</name>
                <text>:
Booting Derby (version {0}) instance {1} 
on database directory {2} in READ ONLY mode with class loader {3}. 
Loaded from {4}.</text>
                <arg>derbyVersion</arg>
                <arg>id</arg>
                <arg>directoryName</arg>
                <arg>classloader</arg>
                <arg>JarClassPath</arg>
            </msg>

            <msg>
                <name>D001</name>
                <text>:
Booting Derby version {0}: instance {1} 
on database directory {2} with class loader {3} 
Loaded from {4}</text>
                <arg>derbyVersion</arg>
                <arg>id</arg>
                <arg>directoryName</arg>
                <arg>classloader</arg>
                <arg>JarClassPath</arg>
            </msg>

            <msg>
                <name>D002</name>
                <text>:
Shutting down instance {0} on database directory {1} with class loader {2} </text>
                <arg>id</arg>
                <arg>dbDirectory</arg>
		<arg>classloader</arg>
            </msg>

            <msg>
                <name>D004</name>
                <text>Backup started for database located at {0} to {1}.</text>
                <arg>databaseName</arg>
                <arg>filePath</arg>
            </msg>

            <msg>
                <name>D005</name>
                <text>Moved old backup copy from {0} to {1}</text>
                <arg>filePath</arg>
                <arg>filePath</arg>
            </msg>

            <msg>
                <name>D006</name>
                <text>Backup of data segment to {0} completed. </text>
                <arg>filePath</arg>
            </msg>

            <msg>
                <name>D007</name>
                <text>Edited database service.properties to use default log device</text>
            </msg>

            <msg>
                <name>D008</name>
                <text>Error editing database service.properties, backup aborted: {0}</text>
                <arg>errorMessage</arg>
            </msg>

            <msg>
                <name>D009</name>
                <text>Copied log directory from {0} to {1}</text>
                <arg>filePath</arg>
                <arg>filePath</arg>
            </msg>

            <msg>
                <name>D010</name>
                <text>Backup aborted due to error</text>
            </msg>

            <msg>
                <name>D011</name>
                <text>Removed old backup copy at {0}</text>
                <arg>filePath</arg>
            </msg>

            <msg>
                <name>D012</name>
                <text>Backup completed, log instant at {0} 
</text>
                <arg>backupInstant</arg>
            </msg>

            <msg>
                <name>D013</name>
                <text>Warning: The database is booted with {0}={1}. In this mode, it is possible that database may not be able to recover, committed transactions may be lost, database may be in an inconsistent state. Please use this mode only when these consequences are acceptable  
</text>
                <arg>durabilityProperty</arg>
                <arg>noSync</arg>
            </msg>

            <msg>
                <name>D015</name>
                <text>Could not read further because another transaction has modified the value.</text>
            </msg>

            <msg>
                <name>D016</name>
                <text>
---------------------------------------------------
page id:            {0}
 Overflow:          {1}
 PageVersion:       {2}
 SlotsInUse:        {3}
 DeletedRowCount:   {4}
 PageStatus:        {5}
 NextId:            {6}
 firstFreeByte:     {7}
 freeSpace:         {8}
 totalSpace:        {9}
 spareSpace:        {10}%
 minimumRecordSize: {11}
 PageSize:          {12}
---------------------------------------------------
{13}
---------------------------------------------------</text>
                <arg>pageId</arg>
                <arg>overFlow</arg>
                <arg>pageVersion</arg>
                <arg>slotsInUse</arg>
                <arg>deletedRowCount</arg>
                <arg>pageStatus</arg>
                <arg>nextId</arg>
                <arg>firstFreeByte</arg>
                <arg>freeSpace</arg>
                <arg>totalSpace</arg>
                <arg>spareSpace</arg>
                <arg>minimumRecordSize</arg>
                <arg>pageSize</arg>
                <arg>hexPageDump</arg>
            </msg>

        </family>


        <family>
            <title>Undocumented Messages for Interface in com.ibm.db2j.core.* from MessageId.java</title>

            <msg>
                <name>I024</name>
                <text>Database not available</text>
            </msg>

            <msg>
                <name>I025</name>
                <text>JDBC Driver not available</text>
            </msg>

            <msg>
                <name>I026</name>
                <text>JDBC Driver registration with java.sql.DriverManager failed: {0}</text>
                <arg>errorMessage</arg>
            </msg>

            <msg>
                <name>I027</name>
                <text>No mark set, or mark read ahead limit exceeded.</text>
            </msg>

            <msg>
                <name>I028</name>
                <text>Stream read error on client side when transferring user data to server.</text>
            </msg>

            <msg>
                <name>I029</name>
                <text>Reached EOF prematurely; expected {0}, got {1}.</text>
                <arg>expectedCount</arg>
                <arg>gotCount</arg>
            </msg>

        </family>


        <family>
            <title>Undocumented JDBC Messages</title>

            <msg>
                <name>J003</name>
                <text>{0}: Shutting down Derby engine</text>
                <arg>timestamp</arg>
            </msg>

            <msg>
                <name>J004</name>
                <text>Database identity</text>
            </msg>

            <msg>
                <name>J005</name>
                <text>Shut down Derby</text>
            </msg>

            <msg>
	        <name>J006</name>
		<text>Deregister AutoloadedDriver</text>
            </msg>

            <msg>
                <name>J007</name>
                <text>Create database</text>
            </msg>

            <msg>
                <name>J008</name>
                <text>No details</text>
            </msg>

            <msg>
                <name>J010</name>
                <text>Encrypt database on disk</text>
            </msg>

            <msg>
                <name>J013</name>
                <text>Upgrade database</text>
            </msg>

            <msg>
                <name>J016</name>
                <text>Cryptographic service provider</text>
            </msg>

            <msg>
                <name>J017</name>
                <text>Cryptographic algorithm</text>
            </msg>

            <msg>
                <name>J018</name>
                <text>Cryptographic key length</text>
            </msg>

            <msg>
                <name>J019</name>
                <text>External cryptographic key</text>
            </msg>

            <msg>
                <name>J020</name>
                <text>Secret cryptographic key</text>
            </msg>

            <msg>
                <name>J021</name>
                <text>Locale for the database</text>
            </msg>

            <msg>
                <name>J022</name>
                <text>User name</text>
            </msg>

            <msg>
                <name>J023</name>
                <text>User password</text>
            </msg>

            <msg>
                <name>J025</name>
                <text>Log directory path</text>
            </msg>

            <msg>
                <name>J028</name>
                <text>Backup path for roll-forward recovery</text>
            </msg>

            <msg>
                <name>J029</name>
                <text>Backup path for creating database from backup</text>
            </msg>

            <msg>
                <name>J030</name>
                <text>Backup path for restoring database from backup</text>
            </msg>

            <msg>
                <name>J031</name>
                <text>Collation for character datatypes</text>
            </msg>

            <msg>
                <name>J100</name>
                <text>Cannot find the network server class, {0}. Your class path should contain derbynet.jar.</text>
                <arg>className</arg>
            </msg>

            <msg>
                <name>J101</name>
                <text>Cannot load the network server class, {0}. {1}  Check the integrity of your derbynet.jar file.</text>
                <arg>className</arg>
                <arg>errorMessage</arg>
            </msg>

            <msg>
                <name>J102</name>
                <text>An exception was thrown during network server startup. {0}</text>
                <arg>errorMessage</arg>
            </msg>

            <msg>
                <name>J103</name>
                <text>An exception was thrown during network server shutdown. {0}</text>
                <arg>errorMessage</arg>
            </msg>

            <msg>
                <name>J104</name>
                <text>The object is already closed.</text>
            </msg>

            <msg>
                <name>J105</name>
                <text>Precision exceeds 31 digits!</text>
            </msg>

            <msg>
                <name>J107</name>
                <text>Error for batch element #</text>
            </msg>

            <msg>
                <name>J108</name>
                <text>Security manager does not permit access to system property {0}.</text>
                <arg>propertyName</arg>
            </msg>

            <msg>
                <name>J109</name>
                <text>Detected an improper TCP/IP client configuration.  Unable to determine the IP address of your local host: '{0}'.  Make sure your client machine has a properly configured IP address.</text>
                <arg>errorMessage</arg>
            </msg>

            <msg>
                <name>J110</name>
                <text>Security mechanism not supported</text>
            </msg>

            <msg>
                <name>J111</name>
                <text>Password missing</text>
            </msg>

            <msg>
                <name>J112</name>
                <text>Userid missing</text>
            </msg>

            <msg>
                <name>J113</name>
                <text>Userid or password invalid</text>
            </msg>

            <msg>
                <name>J114</name>
                <text>Userid revoked</text>
            </msg>

            <msg>
                <name>J115</name>
                <text>New password invalid</text>
            </msg>

            <msg>
                <name>J116</name>
                <text>Local security service error for an operation which cannot be retried.</text>
            </msg>

            <msg>
                <name>J117</name>
                <text>SECTKN missing on ACCSEC when it is required or it is invalid</text>
            </msg>

            <msg>
                <name>J118</name>
                <text>Password expired</text>
            </msg>

            <msg>
                <name>J120</name>
                <text>Unspecified connection error</text>
            </msg>

            <msg>
                <name>J121</name>
                <text>The user is not authorized to access the database.</text>
            </msg>

            <msg>
                <name>J122</name>
                <text>A command requesting services of the database was issued prior to the command requesting access to database (ACCRDB).</text>
            </msg>

            <msg>
                <name>J123</name>
                <text>The requested command encountered an unarchitected and implementation-specific condition for which there was no architected message (additional information may be available in the derby.log file on the server).</text>
            </msg>

            <msg>
                <name>J124</name>
                <text>The access relational database (ACCRDB) command cannot be issued because the database is already currently accessed.</text>
            </msg>

            <msg>
                <name>J125</name>
                <text>A Data Descriptor Mismatch Error was detected.</text>
            </msg>

            <msg>
                <name>J126</name>
                <text>A conversational protocol error was detected.  Reason: 0x{0}.</text>
                <arg>hexNumber</arg>
            </msg>

            <msg>
                <name>J128</name>
                <text>The cursor is not open.</text>
            </msg>

            <msg>
                <name>J129</name>
                <text>An Open Query command was issued for a query which was already open.</text>
            </msg>

            <msg>
                <name>J130</name>
                <text>A protocol error (Invalid FDOCA Description Error) was detected.</text>
            </msg>

            <msg>
                <name>J131</name>
                <text>A protocol error (Data Stream Syntax Error) was detected.  Reason: 0x{0}. Perhaps this is an attempt to open a plaintext connection to an SSL enabled server.</text>
                <arg>hexNumber</arg>
            </msg>

            <msg>
                <name>J132</name>
                <text>The user name for the connection</text>
            </msg>

            <msg>
                <name>J133</name>
                <text>The user's password for the connection</text>
            </msg>

            <msg>
                <name>J134</name>
                <text>Negative values for the maxStatements property are not allowed: {0}</text>
                <arg>maxStatements</arg>
            </msg>
            <msg>
                <name>J135</name>
                <text>The XA transaction timed out and is going to be rolled back. The transaction Xid is {0}.</text>
                <arg>transactionXid</arg>
            </msg>

            <msg>
                <name>J136</name>
                <text>There was an XA transaction associated with the connection being closed. The transaction is going to be rolled back. The transaction Xid is {0}.</text>
                <arg>transactionXid</arg>
            </msg>

            <msg>
                <name>J137</name>
                <text>Could not deregister the JDBC driver when shutting down the Derby engine. Make sure SQLPermission("deregisterDriver") is granted to derby.jar.</text>
            </msg>
        </family>


        <family>
            <title>Undocumented Raw Store Log Messages from MessageId.java</title>

            <msg>
                <name>L001</name>
                <text>------------  Begin Error Message -------------
</text>
            </msg>

            <msg>
                <name>L002</name>
                <text>------------  End Error Message -------------
</text>
            </msg>

            <msg>
                <name>L003</name>
                <text>
------------  Begin Shutdown Error Stack -------------
</text>
            </msg>

            <msg>
                <name>L004</name>
                <text>
------------  End Shutdown Error Stack -------------
</text>
            </msg>

            <msg>
                <name>L005</name>
                <text>
------------  Begin Error Stack -------------
</text>
            </msg>

            <msg>
                <name>L006</name>
                <text>
------------  End Error Stack -------------
</text>
            </msg>

            <msg>
                <name>L007</name>
                <text>Warning: Log file not found, creating new log. Possible inconsistency in the database</text>
            </msg>

            <msg>
                <name>L008</name>
                <text>Deleting incompatible old Logfile {0}</text>
                <arg>fileName</arg>
            </msg>

            <msg>
                <name>L009</name>
                <text>Deleting old Logfile {0}</text>
                <arg>fileName</arg>
            </msg>

            <msg>
                <name>L010</name>
                <text>Incomplete log record detected in file {0} clearing log file from position {1} to eof at {2}.</text>
                <arg>fileName</arg>
                <arg>position</arg>
                <arg>position</arg>
            </msg>

            <msg>
                <name>L011</name>
                <text>Checkpoint Daemon caught standard exception</text>
            </msg>

            <msg>
                <name>L012</name>
                <text>Log record is Not first but transaction is not in transaction table : {0}</text>
                <arg>transactionID</arg>
            </msg>

            <msg>
                <name>L013</name>
                <text>Log record is first but transaction is already in transaction table : {0}</text>
                <arg>transactionID</arg>
            </msg>

            <msg>
                <name>L014</name>
                <text>Bad start instant</text>
            </msg>

            <msg>
                <name>L015</name>
                <text>New log file exist and cannot be deleted {0}</text>
                <arg>fileName</arg>
            </msg>

            <msg>
                <name>L016</name>
                <text>Cannot create a new log file {0}</text>
                <arg>fileName</arg>
            </msg>

            <msg>
                <name>L017</name>
                <text>Cannot create a new log file {0} due to {1}</text>
                <arg>fileName</arg>
                <arg>errorMessage</arg>
            </msg>

            <msg>
                <name>L018</name>
                <text>System may be in a inconsistent state, missing file {0}</text>
                <arg>fileName</arg>
            </msg>

            <msg>
                <name>L020</name>
                <text>Warning: The database was at least at one time booted with {0}={1}. As a result of this mode being used, it is possible that the database may not be able to recover, committed transactions may be lost, and the database may be in an inconsistent state. This may cause unexpected errors.
</text>
                <arg>testModeProperty</arg>
                <arg>testMode</arg>
            </msg>

            <msg>
                <name>L021</name>
                <text>Warning: The database was either previously booted or is currently booted with {0} set to {1}. Note that this mode {0}={1} does not guarantee recoverability, and is probably what might have caused this boot error.
</text>
                <arg>testModeProperty</arg>
                <arg>testMode</arg>
                <arg>testModeProperty</arg>
                <arg>testMode</arg>
            </msg>
            <msg>
               <name>L022</name>
               <text>Warning: Due to a permissions issue accessing the log files, the status of the database has been changed to read only. 
               </text>
           </msg>
        </family>


        <family>
            <title>Undocumented Replication Messages from MessageId.java</title>
            <msg>
                <name>R001</name>
                <text>----  Begin replication error message ({0}) ----</text>
                <arg>timestamp</arg>
            </msg>

            <msg>
                <name>R002</name>
                <text>--------------------  End replication error message ---------------------</text>
            </msg>

            <msg>
                <name>R003</name>
                <text>Replication slave role started for database '{0}'.</text>
                <arg>dbname</arg>
            </msg>

            <msg>
                <name>R004</name>
                <text>Replication slave role was stopped for database '{0}'.</text>
                <arg>dbname</arg>
            </msg>

            <msg>
                <name>R005</name>
                <text>Replication slave got a fatal error for database '{0}'. Replication will be stopped.</text>
                <arg>dbname</arg>
            </msg>

            <msg>
                <name>R006</name>
                <text>Lost connection with the replication master of database '{0}'.</text>
                <arg>dbname</arg>
            </msg>
            
            <msg>
                <name>R007</name>
                <text>Replication master role started for database '{0}'.</text>
                <arg>dbname</arg>
            </msg>
            
            <msg>
                <name>R008</name>
                <text>Replication master role stopped for database '{0}'.</text>
                <arg>dbname</arg>
            </msg>
            
            <msg>
                <name>R009</name>
                <text>Exception occurred during log shipping.</text>
            </msg>
            
            <msg>
                <name>R010</name>
                <text>Replication master trying to reconnect to slave for database '{0}'.</text>
                <arg>dbname</arg>
            </msg>
            
            <msg>
                <name>R011</name>
                <text>Replication slave database '{0}' listens for connections from master on '{1}:{2}'.</text>
                <arg>dbname</arg>
                <arg>hostname</arg>
                <arg>port</arg>
            </msg>
            
            <msg>
                <name>R012</name>
                <text>Replication connection handle invalid.</text>
            </msg>

            <msg>
                <name>R013</name>
                <text>Replication message ({0}): {1}</text>
                <arg>timestamp</arg>
                <arg>message</arg>
            </msg>
            
            <msg>
                <name>R020</name>
                <text>Failover performed successfully for database '{0}'.</text>
                <arg>dbname</arg>
            </msg>
        </family>



        <family>
            <title>Undocumented Message Service Messages from MessageId.java</title>

            <msg>
                <name>M001</name>
                <text>
# ********************************************************************
# ***                Please do NOT edit this file.                 ***
# *** CHANGING THE CONTENT OF THIS FILE MAY CAUSE DATA CORRUPTION. ***
# ********************************************************************</text>
                <comment>Translators: Please translate the ALL CAPS words.</comment>
            </msg>

            <msg>
                <name>M002</name>
                <text>Restored missing/corrupted service properties from backup file.</text>
            </msg>

            <msg>
                <name>M003</name>
                <text>Deleted leftover service properties backup file.</text>
            </msg>

            <msg>
                <name>M004</name>
                <text>Failed to delete leftover service properties backup file, delete it manually: {0}</text>
                <arg>servicePropertiesBackupFile</arg>
            </msg>

            <msg>
                <name>M005</name>
                <text>
# *************************************************************************
# ***              DO NOT TOUCH FILES IN THIS DIRECTORY!                ***
# *** FILES IN THIS DIRECTORY AND SUBDIRECTORIES CONSTITUTE A DERBY     ***
# *** DATABASE, WHICH INCLUDES THE DATA (USER AND SYSTEM) AND THE       ***
# *** FILES NECESSARY FOR DATABASE RECOVERY.                            ***
# *** EDITING, ADDING, OR DELETING ANY OF THESE FILES MAY CAUSE DATA    ***
# *** CORRUPTION AND LEAVE THE DATABASE IN A NON-RECOVERABLE STATE.     ***
# *************************************************************************</text>
                <comment>Translators: Please translate the ALL CAPS words.</comment>
            </msg>

            <msg>
                <name>M006</name>
                <text>
# *************************************************************************
# ***              DO NOT TOUCH FILES IN THIS DIRECTORY!                ***
# *** FILES IN THIS DIRECTORY ARE USED BY THE DERBY DATABASE RECOVERY   ***
# *** SYSTEM. EDITING, ADDING, OR DELETING FILES IN THIS DIRECTORY      ***
# *** WILL CAUSE THE DERBY RECOVERY SYSTEM TO FAIL, LEADING TO          ***
# *** NON-RECOVERABLE CORRUPT DATABASES.                                ***
# *************************************************************************</text>
                <comment>Translators: Please translate the ALL CAPS words.</comment>
            </msg>

            <msg>
                <name>M007</name>
                <text>
# *************************************************************************
# ***              DO NOT TOUCH FILES IN THIS DIRECTORY!                ***
# *** FILES IN THIS DIRECTORY ARE USED BY THE DERBY DATABASE TO STORE   *** 
# *** USER AND SYSTEM DATA. EDITING, ADDING, OR DELETING FILES IN THIS  ***
# *** DIRECTORY WILL CORRUPT THE ASSOCIATED DERBY DATABASE AND MAKE     ***
# *** IT NON-RECOVERABLE.                                               ***
# *************************************************************************</text>
                <comment>Translators: Please translate the ALL CAPS words.</comment>
            </msg>

            <msg>
                <name>M008</name>
                <text>WARNING: the property {0} could not be read due to a security exception: {1}. This could pose a security risk.
                </text>
                <arg>propertyName</arg>
                <arg>error</arg>
            </msg>

            <msg>
                <name>M009</name>
                <text>The file or directory {0} could not be created due to a security exception: {1}.
                </text>
                <arg>fileName</arg>
                <arg>error</arg>
            </msg>

            <msg>
                <name>M00A</name>
                <text>WARNING: cannot get the context class loader due to a security exception: {0}. This may lead to class loader leak.
                </text>
                <arg>error</arg>
            </msg>

            <msg>
                <name>M00B</name>
                <text>WARNING: cannot set the context class loader due to a security exception: {0}. This may lead to class loader leak.
                </text>
                <arg>error</arg>
            </msg>

            <msg>
                <name>M010</name>
                <text>WARNING: could not do ThreadGroup#setDaemon on Derby daemons due to a security exception: {0}. This may impact operation.
                </text>
                <arg>error</arg>
            </msg>

            <msg>
                <name>N001</name>
                <text>This error is caused by the following error.</text>
            </msg>

        </family>

    </section>

</messages>
