147 lines
6.6 KiB
HTML
147 lines
6.6 KiB
HTML
|
<?xml version="1.0" encoding="UTF-8"?>
|
|||
|
<!DOCTYPE html
|
|||
|
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|||
|
<html lang="en-us" xml:lang="en-us">
|
|||
|
<head>
|
|||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|||
|
<meta name="security" content="public" />
|
|||
|
<meta name="Robots" content="index,follow" />
|
|||
|
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
|
|||
|
<meta name="DC.Type" content="reference" />
|
|||
|
<meta name="DC.Title" content="Example: Using iSeries Access for Windows Serviceability APIs" />
|
|||
|
<meta name="abstract" content="The following example uses the iSeries Access for Windows Serviceability APIs to log a message string to theiSeries Access for Windows History Log." />
|
|||
|
<meta name="description" content="The following example uses the iSeries Access for Windows Serviceability APIs to log a message string to theiSeries Access for Windows History Log." />
|
|||
|
<meta name="DC.Relation" scheme="URI" content="rzaikappsv.htm" />
|
|||
|
<meta name="copyright" content="(C) Copyright IBM Corporation 1999, 2006" />
|
|||
|
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1999, 2006" />
|
|||
|
<meta name="DC.Format" content="XHTML" />
|
|||
|
<meta name="DC.Identifier" content="svcapiuseex" />
|
|||
|
<meta name="DC.Language" content="en-us" />
|
|||
|
<!-- All rights reserved. Licensed Materials Property of IBM -->
|
|||
|
<!-- US Government Users Restricted Rights -->
|
|||
|
<!-- Use, duplication or disclosure restricted by -->
|
|||
|
<!-- GSA ADP Schedule Contract with IBM Corp. -->
|
|||
|
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
|
|||
|
<link rel="stylesheet" type="text/css" href="./ic.css" />
|
|||
|
<title>Example: Using iSeries Access for Windows Serviceability
|
|||
|
APIs</title>
|
|||
|
</head>
|
|||
|
<body id="svcapiuseex"><a name="svcapiuseex"><!-- --></a>
|
|||
|
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
|
|||
|
<h1 class="topictitle1">Example: Using <span class="keyword">iSeries Access for Windows</span> Serviceability
|
|||
|
APIs</h1>
|
|||
|
<div><p>The following example uses the <span class="keyword">iSeries™ Access for Windows<sup>®</sup></span> Serviceability
|
|||
|
APIs to log a message string to the<span class="keyword">iSeries Access for Windows</span> History
|
|||
|
Log.</p>
|
|||
|
<div class="example"> <pre>#include <stdio.h>
|
|||
|
#include "CWBSV.H"
|
|||
|
|
|||
|
unsigned int logMessageText(char *msgtxt)
|
|||
|
/* Write a message to the active message log. */
|
|||
|
{
|
|||
|
cwbSV_MessageTextHandle messageTextHandle;
|
|||
|
unsigned int rc;
|
|||
|
|
|||
|
/* Create a handle to a message text object, so that we may write */
|
|||
|
/* message text to the active message log. */
|
|||
|
if ((rc = cwbSV_CreateMessageTextHandle("ProductID", "ComponentID",
|
|||
|
&messageTextHandle)) != CWB_OK)
|
|||
|
return(rc);
|
|||
|
|
|||
|
/* Log the supplied message text to the active message log. */
|
|||
|
rc = cwbSV_LogMessageText(messageTextHandle, msgtxt, strlen(msgtxt));
|
|||
|
|
|||
|
/* Delete the message text object identified by the handle provided.*/
|
|||
|
cwbSV_DeleteMessageTextHandle(messageTextHandle);
|
|||
|
|
|||
|
return(rc);
|
|||
|
}
|
|||
|
|
|||
|
unsigned int readMessageText(char **bufptr, cwbSV_ErrHandle errorHandle)
|
|||
|
/* Read a message from the active message log. */
|
|||
|
{
|
|||
|
cwbSV_ServiceFileHandle serviceFileHandle;
|
|||
|
cwbSV_ServiceRecHandle serviceRecHandle;
|
|||
|
static char buffer[BUFSIZ];
|
|||
|
unsigned int rc;
|
|||
|
|
|||
|
/* Retrieve the fully-qualified path and file name of the active */
|
|||
|
/* message log. */
|
|||
|
if ((rc = cwbSV_GetServiceFileName(CWBSV_HISTORY_LOG, buffer, BUFSIZ,
|
|||
|
NULL)) != CWB_OK)
|
|||
|
return(rc);
|
|||
|
|
|||
|
/* Open the active message log for READ access and return a handle */
|
|||
|
/* to it. */
|
|||
|
if ((rc = cwbSV_OpenServiceFile(buffer, &serviceFileHandle, errorHandle))
|
|||
|
!= CWB_OK)
|
|||
|
return(rc);
|
|||
|
|
|||
|
/* Create a service record object and return a handle to it. */
|
|||
|
if ((rc = cwbSV_CreateServiceRecHandle(&serviceRecHandle)) != CWB_OK) {
|
|||
|
cwbSV_CloseServiceFile(serviceFileHandle, 0);
|
|||
|
return(rc);
|
|||
|
}
|
|||
|
|
|||
|
/* Read the newest record in the active message log into the */
|
|||
|
/* record handle provided. */
|
|||
|
if ((rc = cwbSV_ReadNewestRecord(serviceFileHandle, serviceRecHandle,
|
|||
|
errorHandle)) != CWB_OK) {
|
|||
|
cwbSV_DeleteServiceRecHandle(serviceRecHandle);
|
|||
|
cwbSV_CloseServiceFile(serviceFileHandle, 0);
|
|||
|
return(rc);
|
|||
|
}
|
|||
|
|
|||
|
/* Retrieve the message text portion of the service record object */
|
|||
|
/* identified by the handle provided. */
|
|||
|
if ((rc = cwbSV_GetMessageText(serviceRecHandle, buffer, BUFSIZ, NULL))
|
|||
|
== CWB_OK || rc == CWB_BUFFER_OVERFLOW) {
|
|||
|
*bufptr = buffer;
|
|||
|
rc = CWB_OK;
|
|||
|
}
|
|||
|
|
|||
|
/* Delete the service record object identified by the */
|
|||
|
/* handle provided. */
|
|||
|
cwbSV_DeleteServiceRecHandle(serviceRecHandle);
|
|||
|
|
|||
|
/* Close the active message log identified by the handle provided.*/
|
|||
|
cwbSV_CloseServiceFile(serviceFileHandle, errorHandle);
|
|||
|
|
|||
|
return(rc);
|
|||
|
}
|
|||
|
|
|||
|
void main(int argc, char *argv[ [)
|
|||
|
{
|
|||
|
cwbSV_ErrHandle errorHandle;
|
|||
|
char *msgtxt = NULL, errbuf[BUFSIZ];
|
|||
|
unsigned int rc;
|
|||
|
|
|||
|
/* Write a message to the active message log. */
|
|||
|
if (logMessageText("Sample message text") != CWB_OK)
|
|||
|
return;
|
|||
|
|
|||
|
/* Create an error message object and return a handle to it. */
|
|||
|
cwbSV_CreateErrHandle(&errorHandle);
|
|||
|
|
|||
|
/* Read a message from the active message log. */
|
|||
|
if (readMessageText(&msgtxt, errorHandle) != CWB_OK) {
|
|||
|
if ((rc = cwbSV_GetErrText(errorHandle, errbuf, BUFSIZ, NULL)) ==
|
|||
|
CWB_OK || rc == CWB_BUFFER_OVERFLOW)
|
|||
|
fprintf(stdout, "%s\n", errbuf);
|
|||
|
}
|
|||
|
else if (msgtxt)
|
|||
|
fprintf(stdout, "Message text: \"%s\"\n", msgtxt);
|
|||
|
|
|||
|
/* Delete the error message object identified by the */
|
|||
|
/* handle provided. */
|
|||
|
cwbSV_DeleteErrHandle(errorHandle);
|
|||
|
}</pre>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div>
|
|||
|
<div class="familylinks">
|
|||
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzaikappsv.htm" title="The iSeries Access for Windows Serviceability application programming interfaces (APIs) allow you to log service file messages and events within your program.">iSeries Access for Windows Serviceability APIs</a></div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</body>
|
|||
|
</html>
|