× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Thanks Louis - I'll check it out but I suspect jot will not help much.

The SQL error code really doesn't help at all in this case (XML validation) as all it tells me is that it failed. I need to know _what_ failed and _where_ in the XML doc it is.

The information is clearly available as it appears in the job log.

I've found that DB2_TOKEN_STRING gives me the full length text that is truncated into SQLERRMC so that gives me the _what_ part. MESSAGE_TEXT just gives me the Level 1 text of the SQ20399 error which is the bit I can easily derive from the SQLSTATE. The full job log message here:

Message ID . . . . . . : SQ20399 Severity . . . . . . . : 30
Message type . . . . . : Diagnostic
Date sent . . . . . . : 11/11/13 Time sent . . . . . . : 16:59:13

Message . . . . : XML parsing or validation failed.
Cause . . . . . : The XML parsing failed during validation. The byte offset
into the XML value being processed after conversion to UTF-8 is 161. The
XML parser error description is: cvc-datatype-valid.1.2: The value "A38472"
is not a valid value for the "int" datatype.

As you can see it includes the location (161) It seems so odd that via diagnostics I can get L1 and the latter part of the L2 text - but not the first bit of L2.


On 2013-11-11, at 4:56 PM, Luis Rodriguez <luisro58@xxxxxxxxx> wrote:

Jon,

Cannot check it right now but I seem to remember that the "STACKED" option
(GET STACKED DIAGNOSTICS, as opposed to GET [CURRENT] DIAGNOSTICS) refers
to a second diagnostics area. In this case, it depends of a "handler" and
it would be better processed with a SQL procedure. Again, this is from
memory as I haven't really used this option (I tend to use the SQL error
codes).

Regards,

Luis


Luis Rodriguez
IBM Certified Systems Expert — eServer i5 iSeries
--



On Mon, Nov 11, 2013 at 4:57 PM, Jon Paris <jon.paris@xxxxxxxxxxxxxx> wrote:

Well it was good while it lasted.

The MESSAGE_TEXT appears to only include the level 1 text. The actual
cause of the error (which is in level 2) is not apparently supplied.

However - by the "highly scientific" method of looking at all the other
diagnostic values I discovered that _part_ of the second level text appears
to be placed in DB2_TOKEN_STRING. No way of knowing if this is always true
- but in this instance it has what I need - which is the reason why an XML
validation failed.

Sadly it is still not as good as the job log info. It only includes the
latter part of the second level text, not the really useful stuff like the
position of the error in the source.

So I'm better off than I was but ... why is it that every time I start to
like SQL it throws something like this at me.


On 2013-11-11, at 3:54 PM, Jon Paris <jon.paris@xxxxxxxxxxxxxx> wrote:

Thanks - makes sense but why the hell EXCEPTION is not shown in the
diagram and EXCEPTION is ... mutter mutter.


On 2013-11-11, at 3:48 PM, Luis Rodriguez <luisro58@xxxxxxxxx> wrote:

Jon,

EXCEPTION is a synonym for CONDITION. And CONDITION is used to indicate
which SQL condition is requested. CONDITION 1 indicates the last
SQLstatement diagnostic, CONDITION 2 the second, etc.(
IIRC),

Regards,
Luis

Luis Rodriguez
IBM Certified Systems Expert — eServer i5 iSeries
--



On Mon, Nov 11, 2013 at 4:03 PM, Jon Paris <jon.paris@xxxxxxxxxxxxxx>
wrote:

Thanks Luis - that appears to be what I was looking for.

The examples all appear to reference "EXCEPTION 1" - e.g. GET
DIAGNOSTICS
EXCEPTION 1 error_text = MESSAGE_TEXT;

I cannot find EXCEPTION etc. in the syntax diagram - so it is hard to
find
what it means. Any idea?



On 2013-11-11, at 3:09 PM, Luis Rodriguez <luisro58@xxxxxxxxx> wrote:

Jon,

IIRC, if the SQLCA is used the text is truncated automatically to the
first
70 positions.

Have you tried using Get Diagnostics? Again, IIRC, it allows you to
retrieve the full message with the MESSAGE_TEXT option...


Regards,

Luis

Luis Rodriguez
IBM Certified Systems Expert — eServer i5 iSeries
--



On Mon, Nov 11, 2013 at 3:22 PM, Jon Paris <jon.paris@xxxxxxxxxxxxxx>
wrote:

If I get an error in embedded SQL then SQLERRMC contains part of the
error
message text - but only the first 70 characters. I can see the full
message
in the log but really don't want to have to retrieve that.

Parts of the manual appear to imply that SQLERRMC can be up to 1,000
characters long but I see no sign of how to achieve that.

Anybody know if there is a simple way to retrieve the full(er) text?


Jon Paris

www.partner400.com
www.SystemiDeveloper.com




--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com




--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


--
This is the RPG programming on the IBM i (AS/400 and iSeries)
(RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com




--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com




--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.


Jon Paris

www.partner400.com
www.SystemiDeveloper.com





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.