配信要求API

配信要求または再配信要求を発行するAPIです。

構文

INT  __stdcall  utlsend( LPCSTR lpszFileID , LPCSTR lpszHostName ,
                BOOL bResend , SHORT nPriority , BOOL bSync , INT nWait ,
                LPCSTR lpszFileName , LPCSTR lpszGroup , BOOL bNp );

パラメータ説明

LPCSTR lpszFileID(IN)

配信要求をするファイルIDを指定

50バイト以内の文字列で指定します。省略する場合は“NULL”を指定します。

LPCSTR lpszHostName(IN)

配信時の動的配信先ホスト名、または再配信要求時のホスト名を指定

68バイト以内の文字列で指定します。

このパラメータを使用するためには、システム動作環境設定ファイルの動的パラメータ指定(dynparam)を「動的変更可能」に設定する必要があります。

動的パラメータ指定の詳細は「アドミニストレーション マニュアル」を参照してください。

BOOL bResend(IN)

再配信フラグを指定

TRUE

: 再配信要求を指定

FALSE

: 配信要求を指定

SHORT nPriority(IN)

転送優先度を指定

“1”~“256”の範囲で指定します。省略する場合は“0”を指定してください。

BOOL bSync(IN)

同期転送フラグを指定

再配信要求(bResend=TRUE)の場合は、同期転送指定はできません。

TRUE

: 同期転送する

FALSE

: 同期転送しない

INT nWait(IN)

同期転送時の処理結果受信待ち時間を指定(秒)

同期転送時に処理結果を受け取るために同期をとる時間を、“10”~“259200”の範囲で指定します。この時間に至ると、たとえ配信中であっても処理を戻します。その場合、転送結果は戻りませんので注意してください。

同期転送指定の場合(bSync=TRUE)のみ有効となります。同期転送しない場合(bSync=FALSE)は“0”を指定します。

同期転送指定時に“0”を指定した場合、システム動作環境設定ファイルのソケットリードタイムアウトで設定された値を使用します。

LPCSTR lpszFileName(IN)

配信したいファイル名を指定

200バイト以内の絶対パスで指定します。省略する場合は“NULL”を指定します。

配信時は、省略すると、配信管理情報に登録されている配信ファイル名が設定されます。このパラメータを使用するためには、システム動作環境設定ファイルの動的パラメータ指定(dynparam)を「動的変更可能」に設定する必要があります。動的パラメータ指定の詳細は「アドミニストレーション マニュアル」を参照してください。

再配信時は、すでに再配信待ち状態にあるファイル名を指定してください。再配信ファイルを動的に指定するパラメータではありません。省略すると、パラメータに指定されたホスト名またはファイルIDに一致したすべての転送の再配信が行われます。

LPCSTR lpszGroup(IN)

配信したい転送グループIDを指定

50バイト以内の文字列で指定します。省略する場合は“NULL”を指定します。省略時は配信管理情報に登録されている、転送グループIDが設定されます。このパラメータを使用するためには、システム動作環境設定ファイルの動的パラメータ指定(dynparam)を「動的変更可能」に設定する必要があります。動的パラメータ指定の詳細は「アドミニストレーション マニュアル」を参照してください。

BOOL bNp(IN)

チェックポイントフラグを指定

配信要求(bResend=FALSE)の場合は、必ず“FALSE”を指定してください。

TRUE

: ファイルの先頭から再配信要求を行う

FALSE

: チェックポイント再配信要求を行う

戻り値

正常時は「0」です。エラー時のステータスはutlsend.exeのエラーコードと同様です。

詳細は、「エラーコード・メッセージ」を参照してください。

<使用例>

Visual C++から使用する場合

#include <windows.h>
#include <stdio.h>

typedef INT (__stdcall *LPUTLSEND)(
    LPCSTR lpszFileID, LPCSTR lpszHostName, BOOL bResend,
    SHORT nPriority, BOOL bSync, INT nWait, LPCSTR lpszFileName,
    LPCSTR lpszGroup, BOOL bNp);

int main(int argc, char *argv[])
{
    CHAR szFileID[50+1];
    CHAR szHostName[68+1];
    SHORT nPriority;
    BOOL bResend;
    BOOL bSync;
    INT nWait;
    CHAR szFileName[200+1];
    CHAR szGroup[50+1];
    BOOL bNp;
    HMODULE hHulDll;
    HMODULE hApiDll;
    LPUTLSEND lpUtlsend;
    INT nStatus;

    strcpy_s(szFileID, sizeof(szFileID), "TEST0001");
    strcpy_s(szHostName, sizeof(szHostName), "");
    bResend = FALSE;
    nPriority = 50;
    bSync = TRUE;
    nWait = 300;
    strcpy_s(szFileName, sizeof(szFileName), "");
    strcpy_s(szGroup, sizeof(szGroup), "");
    bNp = FALSE;

    hHulDll = LoadLibrary("C:\\HULFT Family\\hulft8\\bin\\hulftrt.dll");
    if (hHulDll == NULL)
    {
        printf("Unable to load hulftrt.dll."
            "(Error code=%lu)\n", GetLastError());
        return 1;
    }
    hApiDll = LoadLibrary("C:\\HULFT Family\\hulft8\\bin\\hulapi.dll");
    if (hApiDll == NULL)
    {
        printf("Unable to load hulapi.dll."
            "(Error code=%lu)\n", GetLastError());
        FreeLibrary(hHulDll);
        return 2;
    }
    lpUtlsend = (LPUTLSEND)GetProcAddress(hApiDll, "utlsend");
    if (lpUtlsend == NULL)
    {
        printf("Unable to retrieves the address of HULFT API."
            "(Error code=%lu)\n", GetLastError());
        FreeLibrary(hApiDll);
        FreeLibrary(hHulDll);
        return 3;
    }
    nStatus = lpUtlsend(szFileID, szHostName, bResend, nPriority, bSync, nWait,
                      szFileName, szGroup, bNp);
    if (nStatus == 0)
    {
        printf("Terminated normally.\n");
    }
    else
    {
        printf("Error occurred when calling HULFT API."
            "(Returned value=%d)\n", nStatus);
    }
    FreeLibrary(hApiDll);
    FreeLibrary(hHulDll);
    return 0;
}