HandleHTTPRequest processor creating duplicate output flowfiles in nifi
Hi,
I have created the handlehttprequest processor, on a standalone nifi instance which is timer driven, concurrent tasks set to 1 and run schedule is 0. I am hitting my web service with a request from postman or any browser. The output queue of the processor has one entry initially but it becomes 2 after around a minute. I have seen this issue on a single node as well as on a clustered nifi instance. Can someone give any pointers
Nifi Version: 1.7.0
Update 1: I have observed that in case the http response flow is not reached within a certain time a new http request is generated wit the same parameters. Is this expected?, if yes how can I avoid this?
Update 2: We have seen that the second flow file gets generated after exactly 60 seconds. Not sure which configuration sets this.
Update 3: I just saw that the StandardHttpContextMap that we use has a property: Request Expiration which is set to 1 min by default. The documentation states that "Specifies how long an HTTP Request should be left unanswered before being evicted from the cache and being responded to with a Service Unavailable status code". If I increase this value I can see that I dont see any other duplicate values. So now I know why this is happening, but not sure as to why this is acting like this. Why am I getting another entry in the forward queue.
apache-nifi
add a comment |
Hi,
I have created the handlehttprequest processor, on a standalone nifi instance which is timer driven, concurrent tasks set to 1 and run schedule is 0. I am hitting my web service with a request from postman or any browser. The output queue of the processor has one entry initially but it becomes 2 after around a minute. I have seen this issue on a single node as well as on a clustered nifi instance. Can someone give any pointers
Nifi Version: 1.7.0
Update 1: I have observed that in case the http response flow is not reached within a certain time a new http request is generated wit the same parameters. Is this expected?, if yes how can I avoid this?
Update 2: We have seen that the second flow file gets generated after exactly 60 seconds. Not sure which configuration sets this.
Update 3: I just saw that the StandardHttpContextMap that we use has a property: Request Expiration which is set to 1 min by default. The documentation states that "Specifies how long an HTTP Request should be left unanswered before being evicted from the cache and being responded to with a Service Unavailable status code". If I increase this value I can see that I dont see any other duplicate values. So now I know why this is happening, but not sure as to why this is acting like this. Why am I getting another entry in the forward queue.
apache-nifi
add a comment |
Hi,
I have created the handlehttprequest processor, on a standalone nifi instance which is timer driven, concurrent tasks set to 1 and run schedule is 0. I am hitting my web service with a request from postman or any browser. The output queue of the processor has one entry initially but it becomes 2 after around a minute. I have seen this issue on a single node as well as on a clustered nifi instance. Can someone give any pointers
Nifi Version: 1.7.0
Update 1: I have observed that in case the http response flow is not reached within a certain time a new http request is generated wit the same parameters. Is this expected?, if yes how can I avoid this?
Update 2: We have seen that the second flow file gets generated after exactly 60 seconds. Not sure which configuration sets this.
Update 3: I just saw that the StandardHttpContextMap that we use has a property: Request Expiration which is set to 1 min by default. The documentation states that "Specifies how long an HTTP Request should be left unanswered before being evicted from the cache and being responded to with a Service Unavailable status code". If I increase this value I can see that I dont see any other duplicate values. So now I know why this is happening, but not sure as to why this is acting like this. Why am I getting another entry in the forward queue.
apache-nifi
Hi,
I have created the handlehttprequest processor, on a standalone nifi instance which is timer driven, concurrent tasks set to 1 and run schedule is 0. I am hitting my web service with a request from postman or any browser. The output queue of the processor has one entry initially but it becomes 2 after around a minute. I have seen this issue on a single node as well as on a clustered nifi instance. Can someone give any pointers
Nifi Version: 1.7.0
Update 1: I have observed that in case the http response flow is not reached within a certain time a new http request is generated wit the same parameters. Is this expected?, if yes how can I avoid this?
Update 2: We have seen that the second flow file gets generated after exactly 60 seconds. Not sure which configuration sets this.
Update 3: I just saw that the StandardHttpContextMap that we use has a property: Request Expiration which is set to 1 min by default. The documentation states that "Specifies how long an HTTP Request should be left unanswered before being evicted from the cache and being responded to with a Service Unavailable status code". If I increase this value I can see that I dont see any other duplicate values. So now I know why this is happening, but not sure as to why this is acting like this. Why am I getting another entry in the forward queue.
apache-nifi
apache-nifi
edited Nov 24 '18 at 14:59
Sid
asked Nov 24 '18 at 13:03
SidSid
4131634
4131634
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
You are missing the HandleHttpResponse processor. Once you read the request from the HandleHttpRequest processor you must send a response back to the client (In this case postman). If postman doesn't get any response within 60 seconds it will retry due to the timeout.
See this flow built by me.
HandleHttpResponse processor's success queue will have the same flow file. Sometimes you might need to do a certain operation before you send the response to the client. In that case do not directly connect the HandleHttpResponse Processor directly to HandleHttpRequest processor. Once you have completed the operation, make sure you send the response to the client using HandleHttpResponse processor before the timeout.
add a comment |
I also had the same problem. I used HandleHttpResponse immediately but it didn't prevent second flow for me. After some research, I've found that most browsers make a second connection. I don't have any problem when I try it with SOAP UI or Postman, so I am sure my case was about browsers.
We may need to fiddle HandleHttpRequest's scheduling parameters or we can use DetectDuplicate processor to prevent executing second call.
Edit: I've investigated the issue a bit more and I've found that one of the request has "http://localhost:8011/favicon.ico" value for "http.request.url" attribute and other one has "http://localhost:8011".
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53458421%2fhandlehttprequest-processor-creating-duplicate-output-flowfiles-in-nifi%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You are missing the HandleHttpResponse processor. Once you read the request from the HandleHttpRequest processor you must send a response back to the client (In this case postman). If postman doesn't get any response within 60 seconds it will retry due to the timeout.
See this flow built by me.
HandleHttpResponse processor's success queue will have the same flow file. Sometimes you might need to do a certain operation before you send the response to the client. In that case do not directly connect the HandleHttpResponse Processor directly to HandleHttpRequest processor. Once you have completed the operation, make sure you send the response to the client using HandleHttpResponse processor before the timeout.
add a comment |
You are missing the HandleHttpResponse processor. Once you read the request from the HandleHttpRequest processor you must send a response back to the client (In this case postman). If postman doesn't get any response within 60 seconds it will retry due to the timeout.
See this flow built by me.
HandleHttpResponse processor's success queue will have the same flow file. Sometimes you might need to do a certain operation before you send the response to the client. In that case do not directly connect the HandleHttpResponse Processor directly to HandleHttpRequest processor. Once you have completed the operation, make sure you send the response to the client using HandleHttpResponse processor before the timeout.
add a comment |
You are missing the HandleHttpResponse processor. Once you read the request from the HandleHttpRequest processor you must send a response back to the client (In this case postman). If postman doesn't get any response within 60 seconds it will retry due to the timeout.
See this flow built by me.
HandleHttpResponse processor's success queue will have the same flow file. Sometimes you might need to do a certain operation before you send the response to the client. In that case do not directly connect the HandleHttpResponse Processor directly to HandleHttpRequest processor. Once you have completed the operation, make sure you send the response to the client using HandleHttpResponse processor before the timeout.
You are missing the HandleHttpResponse processor. Once you read the request from the HandleHttpRequest processor you must send a response back to the client (In this case postman). If postman doesn't get any response within 60 seconds it will retry due to the timeout.
See this flow built by me.
HandleHttpResponse processor's success queue will have the same flow file. Sometimes you might need to do a certain operation before you send the response to the client. In that case do not directly connect the HandleHttpResponse Processor directly to HandleHttpRequest processor. Once you have completed the operation, make sure you send the response to the client using HandleHttpResponse processor before the timeout.
edited Jan 31 at 10:18
answered Nov 28 '18 at 9:30
Asanka sanjayaAsanka sanjaya
4693826
4693826
add a comment |
add a comment |
I also had the same problem. I used HandleHttpResponse immediately but it didn't prevent second flow for me. After some research, I've found that most browsers make a second connection. I don't have any problem when I try it with SOAP UI or Postman, so I am sure my case was about browsers.
We may need to fiddle HandleHttpRequest's scheduling parameters or we can use DetectDuplicate processor to prevent executing second call.
Edit: I've investigated the issue a bit more and I've found that one of the request has "http://localhost:8011/favicon.ico" value for "http.request.url" attribute and other one has "http://localhost:8011".
add a comment |
I also had the same problem. I used HandleHttpResponse immediately but it didn't prevent second flow for me. After some research, I've found that most browsers make a second connection. I don't have any problem when I try it with SOAP UI or Postman, so I am sure my case was about browsers.
We may need to fiddle HandleHttpRequest's scheduling parameters or we can use DetectDuplicate processor to prevent executing second call.
Edit: I've investigated the issue a bit more and I've found that one of the request has "http://localhost:8011/favicon.ico" value for "http.request.url" attribute and other one has "http://localhost:8011".
add a comment |
I also had the same problem. I used HandleHttpResponse immediately but it didn't prevent second flow for me. After some research, I've found that most browsers make a second connection. I don't have any problem when I try it with SOAP UI or Postman, so I am sure my case was about browsers.
We may need to fiddle HandleHttpRequest's scheduling parameters or we can use DetectDuplicate processor to prevent executing second call.
Edit: I've investigated the issue a bit more and I've found that one of the request has "http://localhost:8011/favicon.ico" value for "http.request.url" attribute and other one has "http://localhost:8011".
I also had the same problem. I used HandleHttpResponse immediately but it didn't prevent second flow for me. After some research, I've found that most browsers make a second connection. I don't have any problem when I try it with SOAP UI or Postman, so I am sure my case was about browsers.
We may need to fiddle HandleHttpRequest's scheduling parameters or we can use DetectDuplicate processor to prevent executing second call.
Edit: I've investigated the issue a bit more and I've found that one of the request has "http://localhost:8011/favicon.ico" value for "http.request.url" attribute and other one has "http://localhost:8011".
edited 2 days ago
answered 2 days ago
Turker TunaliTurker Tunali
979
979
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53458421%2fhandlehttprequest-processor-creating-duplicate-output-flowfiles-in-nifi%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown