Bilal-S / iis2tomcat

AJP Connector between Internet Information Services (IIS) and Apache Tomcat
http://www.boncode.net/boncode-connector
49 stars 32 forks source link

BonCode Connector Problem #84

Closed dmarinello closed 4 years ago

dmarinello commented 4 years ago

Bilal,

Since upgrading to Boncode Version 1.0.41 in mid 2018, I'm still getting the below error message on an almost daily basis when users connect to my lucee server.

Error connecting to Apache Tomcat instance. Please check that a Tomcat server is running at given location and port. Details: No connection could be made because the target machine actively refused it 127.0.0.1:8009 You can change this message by changing TomcatConnectErrorURL setting in setting file.

Please see the attached boncode connector configuration in my apache configuration file.

Do you have any recommendations?

Thank you,

Dale

apacheconfig

Bilal-S commented 4 years ago

Dale: this should not happen. What is your IIS config look like?

Do you have an IIS Idle Timeout set for you site? Does it correspond with your tomcat one? If not, you should probably set it for 1min to match your tomcat, this way IIS will not attempt to make a call on a already closed down connection. If this was the case I would also increase the Tomcat connectionTimeout slightly to 61000ms.

Best, Bilal

dmarinello commented 4 years ago

Bilal,

Are the IIS configuration files in C:\Windows\System32\inetsrv\config ?

If so, I don't see any settings for timeout administration or applicationhost config files.

Where are the IIS config files?

Dale

Bilal-S commented 4 years ago

Dale: Here is the setting in IIS admin UI:

image

dmarinello commented 4 years ago

Under default application pool?

Dale

dmarinello commented 4 years ago

What does keepalivetimeout = -1 do?

Bilal-S commented 4 years ago

I am not sure about negative values.

You need to set it to one minute to correspond to your tomcat timeout you are using.

That is a positive integer and should be 1.

The default for Iis websites is otherwise 20 minutes.

On Thu, Sep 19, 2019, 23:31 dmarinello notifications@github.com wrote:

What does keepalivetimeout = -1 do?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Bilal-S/iis2tomcat/issues/84?email_source=notifications&email_token=AAFDJZICSWTMZA23EKFEF63QKQ7X3A5CNFSM4IYOW4RKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7FOIMY#issuecomment-533390387, or mute the thread https://github.com/notifications/unsubscribe-auth/AAFDJZNVKSJ2FNUKXBY3TVLQKQ7X3ANCNFSM4IYOW4RA .

Bilal-S commented 4 years ago

If you were referring to the tomcat keepalivetimeout it should not be needed. It will default from connectionTimeout. Here are the settings for Tomcat 8 for AJP: https://tomcat.apache.org/tomcat-8.0-doc/config/ajp.html

dmarinello commented 4 years ago

Bilal,

Still getting an apache error every couple of days. I would really like to eliminate these errors.

Running Lucee 5.2.9.31.

Idletimeout in iis is set to 2 as you recommended.

Here are my tomcat settings:

Thank you,

Dale

apacheerror

dmarinello commented 4 years ago

For some reason my tomcat settings didn't paste. Here they are. tomcatsettings

Bilal-S commented 4 years ago

How many threads are you running from IIS? Can you paste the BonCodeSettings file (remove any security keys).

dmarinello commented 4 years ago

Bilal,

Where can I found out how many threads I'm running in IIS?

boncodesettings

Bilal-S commented 4 years ago

You do not have a thread max set, that will mean that IIS will continually create/destroy connections rather than reusing them from a pool. This is slightly slower, but also can lead to issues with Tomcat allocating connections or refusing connections when its connection pool is exhausted.

Let's try this in BonCode Settings:

Remove: <ReadTimeOut>3600000</ReadTimeOut>

Add:

<MaxConnections>1000</MaxConnections>
<PacketSize>65536</PacketSize> 
dmarinello commented 4 years ago

Bilal,

I made the recommended changes and now I have below error.

Dale

Generic Connector Communication Error: Please check and adjust your setup: Ensure that Tomcat is running on given host and port. If this is a timeout error consider adjusting IIS timeout by changing executionTimeout attribute in web.config (see manual). [2019-10-02 20:46:22 ]

Bilal-S commented 4 years ago

Please change back. If this happened immediately after you apply the changes (recylce IIS) there is something not in sync with Tomcat. The most likely issue would be PacketSize disagreement which existed before the change since in Tomcat you are using 65536 bytes and on IIS you are using 8092 bytes (default). Can you adjust both sides to 65531 bytes?

If this happens after a few calls we need to check the Windows Application log. Please enable it via running this command in your command line with Admin rights:

eventcreate /ID 1 /L APPLICATION /T INFORMATION  /SO BonCodeConnector /D "Source Created"
dmarinello commented 4 years ago

Bilal,

The error occurred 1 1/2 days after I made the recommended changes.

What can I change the IIS Packet Size?

DAle

dmarinello commented 4 years ago

Where in IIS can I change the packet size?

Bilal-S commented 4 years ago

Dale:

You can change IIS by changing the BonCode setting: <PacketSize>65531</PacketSize> Also change the Tomcat side: packetSize="65531"

If you are receiving the error after one day we have a variety of sources to consider, most likely something on the application will cause threads to get stuck:

Bilal-S commented 4 years ago

closing for now

desusai7 commented 3 years ago

Dale :

I had tried this and it worked brilliantly for me :

Add Secret Required Parameter like this

<Connector protocol="AJP/1.3" address="::" port="8009" redirectPort="8443" secretRequired="false" connectionTimeout="60000" /> (or)

<Connector protocol="AJP/1.3" address="::" port="8009" redirectPort="8443" secretRequired="true" secret="mysecret" connectionTimeout="60000" /> and when you set secretRequired=true and set a secret then don't forget to add the secret on your HttpServer (or) IIS too.

Desu

dmarinello commented 3 years ago

Desu,

Where do you make that change to add the Secret in IIS?

Dale

desusai7 commented 3 years ago

Dale,

Actually i had set secretRequired=false and hence i need not to set secret in IIS. But i think the secret needed to be set for a tomcat server. I am not sure about it. You can refer to Setting Up AJP for more details

Desu

dmarinello commented 3 years ago

Desu,

I still get the same error.

Generic Connector Communication Error:Please check and adjust your setup: Ensure that Tomcat is running on given host and port. If this is a timeout error consider adjusting IIS timeout by changing executionTimeout attribute in web.config (see manual). [2020-08-25 04:17:37 ]

gituseranh commented 3 years ago

Hi, I am trying to use a powershell script to install Boncode, and not being able to specify the install destination folder, which needs to be different from C:\Windows (default). I used a command such as below: $Command = ".\Connector_Setup.exe /SP- /VERYSILENT /SUPPRESSMSGBOXES /D=$destination" cmd.exe /c $Command The connector_setup.exe is not recognizing the destination folder defined with the /D switch. I cannot read the output of ".\Connector_Setup.exe /?" beyond the /DIR switch - so, not sure how to make it work. Basically, I want to select the second option "Let me choose specific sites …" instead of "ALl IIS Sites" in the "Select All (Global) or Specific Site Option". Can someone please suggest how I can do that and install the Boncode in a specific location (Say, in C:\inetpub\wwwroot\BIN) ?

Bilal-S commented 3 years ago

@gituseranh Please see the section on the manual for scripted installs. Review section for scripted deployments: http://www.boncode.net/connector/webdocs/Tomcat_Connector.htm#_Toc38268667 You need to create an installer.settings file. An example one is in the distribution with flags.

Note when you chose global install mode you cannot set destination folders. They are set on based on Windows required install destinations.

gituseranh commented 3 years ago

Bilal-S, thanks very much for the reply - the manual is awesome: thank you for the link.   We wanted a global install but instead of C: we wanted to use a different drive [E:]  The workaround we used was to let Boncode install on C: (default), then copy the installed folders over to E: and so far, that seems to be working - have not had any issues!  

Regards,Anh  On Sunday, January 17, 2021, 08:42:58 PM EST, Bilal Soylu notifications@github.com wrote:

@gituseranh Please see the section on the manual for scripted installs. Review section for scripted deployments: http://www.boncode.net/connector/webdocs/Tomcat_Connector.htm#_Toc38268667 You need to create an installer.settings file. An example one is in the distribution with flags.

Note when you chose global install mode you cannot set destination folders. They are set on based on Windows required install destinations.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

dmarinello commented 3 years ago

Bilal,

Would it be possible for me to pay you to look at this connection error and do a proper configuration with a remote session? I've been dealing with this error now for a couple of years.

Thank you,

Dale

Bilal-S commented 3 years ago

@dmarinello Be glad to help you just reach out to me via my gmail (in docs last page) and we will see what we can do.

dmarinello commented 3 years ago

I can't find it anywhere by clicking the Docs link near 2021 Github Inc.

Please send me an email at trivalleybrewers@comcast.net .

Dale