라이브러리
[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 메시지 큐에서 메시지를 가져와 출력합니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.