Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP 9000 Networking: HP FTAM/9000 Programmer's Guide > Chapter 7 Managing and Accessing HP FTAM/9000 Files

Grouping LLCS FTAM Functions

» 

Technical documentation

Complete book in PDF
» Feedback
Content starts here

 » Table of Contents

 » Glossary

 » Index

Use ft_bgroup() and ft_egroup() to begin and end the grouping of low level FTAM functions and thus, increase performance. The ftam_init places these functions into one presentation service data unit (PSDU) before sending it across the network.

For a group to be successful, all functions moving from one regime to another must be successful (regardless of whether the calls that do not move through regimes succeed).

If a failure occurs on a function that crosses regimes and if the SUCCESS count does not equal or exceed threshold, no remaining calls, except ft_egroup(), are processed and you receive an error.

Allowable Groupings

Refer to the following guidelines for grouping FTAM functions and for reading the following table. The table lists the legal groupings with the associated sequence of LLCS functions (from left to right).

EXAMPLE:

The first grouping (#1) in the table reads as follows.

1. Call ft_bgroup().
2. Call either ft_create() if the file does not exist or ft_select() if it does.
3. Call either or both ft_rattributes() and ft_cattributes().
4. Call ft_open() followed by ft_egroup().

  • All groups must begin with ft_bgroup() and end with ft_egroup().

  • The first function you want to call after ft_bgroup() determines which regime you must be in to call ft_bgroup().

  • You must call all functions within the group asynchronously except for ft_egroup(), which can be synchronous or asynchronous.

  • If more than one function is listed in a ``Mandatory'' column, you must perform both functions in the order listed.

  • You can specify either or both optional functions, or can choose not to use them. If you call both optional functions, you must do so in the order given in the table.

Mandatory Beginning Functions

Must Have One of these Functions

Optional Functions

Must Have One of these Functions

Mandatory Ending Functions

#1 ft_bgroup()

ft_select()

ft_create()

ft_rattributes() ft_cattributes()

ft_open()

ft_egroup()

#2 ft_bgroup()

ft_close()

ft_rattributes() ft_cattributes()

ft_deselect()

ft_delete()

ft_egroup()

#3 ft_bgroup()

ft_select()

ft_create()

ft_rattributes() ft_cattributes()

ft_deselect()

ft_delete()

ft_egroup()

#4 ft_bgroup()

ft_select()

ft_create()

ft_rattributes() ft_cattributes()

ft_egroup()

#5 ft_bgroup()

ft_rattributes() ft_cattributes()

ft_deselect()

ft_delete()

ft_egroup()

The legal groupings are restricted by the service_class. Refer to the above table and the following list to determine these restrictions.

  • If you select FT_SC_TRANSFER, you must use the #1 or #2 groupings.

  • If you select FT_SC_MANAGEMENT, you must use the #3 grouping.

  • If you select FT_SC_TRANSFER_AND_MGMT, you must use the #1, #2, or #3 groupings.

  • If you select FT_SC_ACCESS, you can use any of the groupings.

If you select the service_class FT_SC_TRANSFER, FT_SC_MANAGEMENT, or FT_SC_TRANSFER_AND_MGT, you must use FT_FU_GROUPING in the functional_units parameter.

ft_bgroup()

#include %</opt/ftam/include/map.h>
#include %</opt/ftam/include/mapftam.h>
Return_code
ft_bgroup (connection_id, threshold, return_event_name,
input_dcb, inout_dcb)
Connection_id connection_id;
Uint32 threshold;
Local_event_name return_event_name;
char *input_dcb;
struct Ft_bgroup_out_dcb **inout_dcb;

Issue an asynchronous ft_bgroup() to start a set of grouped functions.

  • You cannot nest an ft_bgroup() function within another ft_bgroup() function (i.e., you cannot invoke ft_bgroup() within another set of grouped functions).

  • During ft_connect(), you must negotiate the FT_FU_GROUPING functional_units to use ft_bgroup().

Ft_bgroup_out_dcb

struct  Ft_bgroup_out_dcb  {
Uint32 size;
struct Api_rc result;
};

ft_bgroup() Parameters

ft_bgroup() Parameter

Type

Description

connection_id

Mandatory Input

Uniquely identifies a specific connection to the filestore

threshold

Mandatory Input

Specifies how many functions that change regimes must be successful for the group to be successful; set to a value between 1 and 5

return_event_name

Mandatory Input

Uniquely identifies the asynchronous call

inout_dcb->size

Mandatory input if using inout_dcb

Size (in Octets) of the inout_dcb structure and data

inout_dcb->result

Output

Pointer to the struct Api_rc containing the outcome of the operation: result_code and vendor_code (HP-UX—specific error)

ft_egroup()

#include %</opt/ftam/include/map.h>
#include %</opt/ftam/include/mapftam.h>

Return_code
ft_egroup (connection_id, return_event_name, input_dcb,
inout_dcb)

Connection_id connection_id;
Local_event_name return_event_name;
char *input_dcb;
struct Ft_egroup_out_dcb **inout_dcb;

Use ft_egroup(), either synchronously or asynchronously, to end a set of grouped functions.

  • During ft_connect(), you must negotiate the FT_FU_GROUPING functional_units to use ft_egroup().

  • An ft_egroup() is successful only if ft_bgroup() succeeds and if the threshold number of requests succeeds.

Ft_egroup_out_dcb

struct  Ft_egroup_out_dcb {
Uint32 size;
struct Api_rc result;
};

ft_egroup() Parameters

ft_egroup() parameter

Type

Description

connection_id

Mandatory Input

Uniquely identifies a specific connection to the filestore

return_event_name

Mandatory Input

If the call is asynchronous, uniquely identifies the function call; if the call is synchronous, the value is zero

inout_dcb->size

Mandatory input if using inout_dcb

Size (in Octets) of the inout_dcb structure and data

inout_dcb->result

Output

Pointer to the struct Api_rc containing the outcome of the operation: result_code and vendor_code (HP-UX—specific error)

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1997 Hewlett-Packard Development Company, L.P.