Как стать автором
Обновить

Host и Request_Uri в списке сессий Oracle

Время на прочтение1 мин
Количество просмотров1.5K
Чтобы в списке сессий на сервере Oracle видеть откуда с веба нам пришел запрос, достаточно добавить 7 строк кода в расширение PHP OCI8.





Файл

ext/oci8/oci8.c


В начале

#include "SAPI.h"


В функции php_oci_do_connect вставляем шесть строк

	if (!connection) {
		RETURN_FALSE;
	}

	char* hostname = sapi_getenv("HTTP_HOST", 100 TSRMLS_CC);
	char* uri = sapi_getenv("REQUEST_URI", 100 TSRMLS_CC);
	char* reqid = sapi_getenv("HTTP_X_REQUEST_ID", 32 TSRMLS_CC);
	PHP_OCI_CALL_RETURN(OCI_G(errcode), OCIAttrSet, ((dvoid *) connection->session, (ub4) OCI_HTYPE_SESSION, (dvoid *) hostname, (ub4) strlen(hostname), (ub4) OCI_ATTR_MODULE, OCI_G(err)));
	PHP_OCI_CALL_RETURN(OCI_G(errcode), OCIAttrSet, ((dvoid *) connection->session, (ub4) OCI_HTYPE_SESSION, (dvoid *) uri, (ub4) strlen(uri), (ub4) OCI_ATTR_ACTION, OCI_G(err)));
	PHP_OCI_CALL_RETURN(OCI_G(errcode), OCIAttrSet, ((dvoid *) connection->session, (ub4) OCI_HTYPE_SESSION, (dvoid *) reqid, (ub4) strlen(reqid), (ub4) OCI_ATTR_CLIENT_INFO, OCI_G(err)));

	RETURN_RESOURCE(connection->rsrc_id);



Module и action видны не только в V$SESSION, но и в V$SQLAREA. Кроме host и request_uri у себя мы пишем уникальный сквозной идентификатор запроса, который в дальнейшем можно отследить по логам nginx и apache.
Теги:
Хабы:
Всего голосов 15: ↑7 и ↓8-1
Комментарии6

Публикации

Истории

Работа

PHP программист
178 вакансий

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
26 октября
ProIT Network Fest
Санкт-Петербург
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань