FML32 Fields Sent By a Client Cannot Be Retrieved Within a Service Due To FALIGNERR (Doc ID 1363114.1)

Last updated on NOVEMBER 04, 2016

Applies to:

Oracle Tuxedo - Version: 11.1.1.2.0 and later   [Release: 11g and later ]
Information in this document applies to any platform.

Symptoms

A client calls a service sending a FML32 buffer.

Within the service when retrieving the value of a field of this FML32 buffer (or even when printing all the buffer fields) an error occurs claiming that the FML32 buffer (fielded buffer) is not correctly aligned : FALIGNERR error

The problem occurs with version 11gR1PS1 and did not occur with version 8.1 nor with version 10gR3.

To reproduce the problem, here is the called service code :
#ifdef __cplusplus
extern "C"
#endif
int
#if defined(__STDC__) || defined(__cplusplus)
FMLSVC(TPSVCINFO *rqst)
#else
FMLSVC(rqst)
TPSVCINFO *rqst;
#endif
{

Ferror32=0;

printf("\n>>>>>>>>>>>>>>>>>>>>>>\n\n");
printf("FMLSVC : Before printing FML32 buffer :\n\n");

/* Print the FML buffer */
if ((Fprint32((FBFR32*)rqst->data)) == -1){
    printf("FMLSVC : Fprint32 fails with error %d, %s\n", Ferror32, Fstrerror32(Ferror32));
    F_error32("Fprint32");
}

printf("\nFMLSVC : After having printed FML32 buffer :\n\n");

/* Return the transformed buffer to the requestor. */
tpreturn(TPSUCCESS, 0, rqst->data, 0L, 0);

}


The ud32 utility (acting as Tuxedo client) calls FMLSVC service :
ud32 <buf.in

with buf.in containing :
$ cat buf.in
SRVCNM FMLSVC
TOTO_CDRE_OPE 226
TOTO_TATA_PROC_MACHINE_OS SunOS 5.10

$

In stdout file of the server advertising FMLSVC service, Fprintf32() fails with FALIGNERR error:

FMLSVC : Before printing FML32 buffer :

FMLSVC : Fprint32 fails with error 1, LIBFML_CAT:1: ERROR: Fielded buffer not aligned

FMLSVC : After having printed FML32 buffer :


Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms