Я бы рассмотрел использование Splunk HTTP Event Collector .
Вы можете использовать XSLT ou Gatewayscript в сочетании с функцией urlopen Datapower (доступной на обоих языках), чтобы сделать простой HTTP-вызов коллекционеру.
Я нашел здесь здесь ( код под лицензией Apache ), что вызов такой же простой, как вызов https: // SPLUNK_SVR: 8088 / services / collector / event / 1.0 со следующим телом:
{
"source": "chicken coop",
"sourcetype": "httpevent",
"index": "main",
"host": "farm.local",
"event": {
"message": {
"chickenCount": 500
"msg": "Chicken coup looks stable.",
"name": "my logger",
"put": 98884,
"temperature": "70F",
"v": 0
},
"severity": "info"
}
}
Я думаю, что он будет работать лучше на datapower, используя скрипт шлюза, Пример такого вызова можно найти здесь здесь . Посмотрите на первый пример. Вы найдете аналогичный код, в котором я изменил раздел «Данные»:
//Could be added to a library
var urlopen = require('urlopen');
var jsonData = '{
"source": "Datapower",
"sourcetype": "SOMETHING DYNAMIC",
"index": "main",
"host": "GET_THIS_FROM_DP_VARIABLES",
"event": {
"message": {
"SOMECOUNTER": 500
"msg": "SOME INTERESTING INFORMATION.",
"name": "GET_THIS_FROM_DP_VARIABLES",
"put": 3333,
"yadayada": "foo",
"bar": 0
},
"severity": "info"
}
}';
var options = {
target: 'https://SPLUNK_SVR:8088/services/collector/event/1.0',
method: 'POST',
headers: { },
contentType: 'text/plain',
timeout: 60,
sslClientProfile: 'AN_EXISTING_SSL_PROFILE_ON_DATAPOWER',
data: jsonData};
urlopen.open(options, function(error, response) {
if (error) {
// an error occurred during the request sending or response header parsing
console.error("Splunk Logging - urlopen error: "+JSON.stringify(error));
} else {
// get the response status code
var responseStatusCode = response.statusCode;
var responseReasonPhrase = response.reasonPhrase;
console.log("Splunk Logging - status code: " + responseStatusCode);
console.log("Splunk Logging - reason phrase: " + responseReasonPhrase);
// no need to read response data - This is just logging
}
});
Он останавливается и выдает незаконное чтение / запись всякий раз, когда я использую задержку. Отстойно, что все время нужно создавать реле для условных переходов, когда программа действительно большая.
blockquote>Это проблема с DOSBox, которая дает сбой функции
int 15h AH=86h
.
Я обошел проблему, запрограммировав механизм задержки, основанный на таймере BIOS. Вы можете найти все детали в a-low-tech-подхода к измерению скорости игрыМои первые параграфы соответствуют описанию вашей проблемы:
[1114 ] При разработке игры мне понадобилась процедура задержки, способная выполнять задержки в диапазоне от 0,5 с до нескольких мс. Очевидным выбором было использовать функцию задержки BIOS 86h на 15h. В среде с реальным реальным адресом он работает правильно, но я видел, что эмулятор, такой как DOSBox, все портит. Тонны нелегального чтения и записи . Поэтому мне пришлось придумать другое решение.blockquote>
Если вас беспокоит размер программы, вы можете изменить эти макросы на подпрограммы. Каждый раз, когда вы вызываете макрос, весь его код вставляется в программу, тогда как подпрограмма кодируется один раз и вызывается несколько раз с помощью простой команды
call
.
blockquote>.code org 100 main proc far mov ax, @data mov ds, ax mov es, ax
Вы уверены, что ваша
.model small
программа нуждается в этой директивеorg 100
?Если, как указано в комментарии [119 ], вы изменили на
.model tiny
,ORG
скорее всего должно бытьorg 256
.