라이브러리

[PHP] mqseries_get - MQSeries MQGET




MQSeries와 PHP

MQSeries는 IBM의 Message Queueing System으로, 메시지 큐를 사용하여 프로세스 간의 통신을 지원하는 소프트웨어입니다. PHP에서 MQSeries를 사용하려면, MQSeries의 C API를 사용하여 PHP 확장 모듈을 작성해야 합니다.

mqseries_get 함수

`mqseries_get` 함수는 MQSeries 메시지 큐에서 메시지를 가져오는 함수입니다. 이 함수는 메시지 큐의 헤더 정보와 메시지 본문을 가져오며, 메시지 큐의 상태를 확인하는 데 사용됩니다.

함수 시그니처

`mqseries_get` 함수의 시그니처는 다음과 같습니다.

#hostingforum.kr
c

int mqseries_get(

    MQHCONN hconn,

    MQOD *podo,

    char *pbuf,

    long *pbuf_len,

    long *pmsg_len,

    long *pmsg_type,

    long *pmsg_status,

    long *pmsg_flags,

    long *pmsg_id,

    long *pmsg_group,

    long *pmsg_correl_id,

    long *pmsg_timestamp,

    long *pmsg_expiration,

    long *pmsg_priority,

    long *pmsg_user_id,

    long *pmsg_user_data,

    long *pmsg_data

);



함수 매개변수

* `hconn`: MQSeries 연결 핸들
* `podo`: MQSeries 메시지 큐의 헤더 정보
* `pbuf`: 메시지 본문
* `pbuf_len`: 메시지 본문의 길이
* `pmsg_len`: 메시지의 길이
* `pmsg_type`: 메시지 타입
* `pmsg_status`: 메시지 상태
* `pmsg_flags`: 메시지 플래그
* `pmsg_id`: 메시지 ID
* `pmsg_group`: 메시지 그룹
* `pmsg_correl_id`: 메시지 관련 ID
* `pmsg_timestamp`: 메시지 타임스탬프
* `pmsg_expiration`: 메시지 만료 시간
* `pmsg_priority`: 메시지 우선순위
* `pmsg_user_id`: 메시지 사용자 ID
* `pmsg_user_data`: 메시지 사용자 데이터
* `pmsg_data`: 메시지 본문 데이터

PHP 확장 모듈

PHP 확장 모듈을 작성하려면, PHP의 C API를 사용하여 MQSeries의 C API를 호출해야 합니다. 예제를 위한 PHP 확장 모듈은 다음과 같습니다.

#hostingforum.kr
c

#include 

#include 



PHP_FUNCTION(mqseries_get)

{

    long hconn;

    MQOD odo;

    char *pbuf;

    long *pbuf_len;

    long *pmsg_len;

    long *pmsg_type;

    long *pmsg_status;

    long *pmsg_flags;

    long *pmsg_id;

    long *pmsg_group;

    long *pmsg_correl_id;

    long *pmsg_timestamp;

    long *pmsg_expiration;

    long *pmsg_priority;

    long *pmsg_user_id;

    long *pmsg_user_data;

    long *pmsg_data;



    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &hconn) == FAILURE) {

        RETURN_NULL();

    }



    pbuf = (char *) emalloc(1024);

    pbuf_len = (long *) emalloc(sizeof(long));

    *pbuf_len = 1024;



    pmsg_len = (long *) emalloc(sizeof(long));

    *pmsg_len = 0;



    pmsg_type = (long *) emalloc(sizeof(long));

    *pmsg_type = 0;



    pmsg_status = (long *) emalloc(sizeof(long));

    *pmsg_status = 0;



    pmsg_flags = (long *) emalloc(sizeof(long));

    *pmsg_flags = 0;



    pmsg_id = (long *) emalloc(sizeof(long));

    *pmsg_id = 0;



    pmsg_group = (long *) emalloc(sizeof(long));

    *pmsg_group = 0;



    pmsg_correl_id = (long *) emalloc(sizeof(long));

    *pmsg_correl_id = 0;



    pmsg_timestamp = (long *) emalloc(sizeof(long));

    *pmsg_timestamp = 0;



    pmsg_expiration = (long *) emalloc(sizeof(long));

    *pmsg_expiration = 0;



    pmsg_priority = (long *) emalloc(sizeof(long));

    *pmsg_priority = 0;



    pmsg_user_id = (long *) emalloc(sizeof(long));

    *pmsg_user_id = 0;



    pmsg_user_data = (long *) emalloc(sizeof(long));

    *pmsg_user_data = 0;



    pmsg_data = (long *) emalloc(sizeof(long));

    *pmsg_data = 0;



    mqseries_get(hconn, &odo, pbuf, pbuf_len, pmsg_len, pmsg_type, pmsg_status, pmsg_flags, pmsg_id, pmsg_group, pmsg_correl_id, pmsg_timestamp, pmsg_expiration, pmsg_priority, pmsg_user_id, pmsg_user_data, pmsg_data);



    RETURN_STRING(pbuf, pbuf_len);

}



PHP 함수

PHP 함수는 다음과 같습니다.

#hostingforum.kr
php

<?php

function mqseries_get($hconn)

{

    $pbuf = '';

    $pbuf_len = 1024;

    $pmsg_len = 0;

    $pmsg_type = 0;

    $pmsg_status = 0;

    $pmsg_flags = 0;

    $pmsg_id = 0;

    $pmsg_group = 0;

    $pmsg_correl_id = 0;

    $pmsg_timestamp = 0;

    $pmsg_expiration = 0;

    $pmsg_priority = 0;

    $pmsg_user_id = 0;

    $pmsg_user_data = 0;

    $pmsg_data = 0;



    $result = mqseries_get($hconn, $pbuf, $pbuf_len, $pmsg_len, $pmsg_type, $pmsg_status, $pmsg_flags, $pmsg_id, $pmsg_group, $pmsg_correl_id, $pmsg_timestamp, $pmsg_expiration, $pmsg_priority, $pmsg_user_id, $pmsg_user_data, $pmsg_data);



    return $result;

}

?>



사용 예

#hostingforum.kr
php

<?php

$hconn = mqseries_connect('localhost', 'SYSTEM.ADMIN.SVRCONN', '123456');

$pbuf = mqseries_get($hconn);

echo $pbuf;

?>



이 예제에서는 `mqseries_get` 함수를 사용하여 MQSeries 메시지 큐에서 메시지를 가져와 출력합니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 385 페이지

검색

게시물 검색