transport

The transport receives messages from clients and invokes interceptors in the request and response flow. The interceptors that are engaged with the transport are global and are invoked for each message flowing through the router.



Can be used in:

router and bean

Syntax

<transport coreThreadPoolSize="integer"
  socketTimeout="integer"
  tcpNoDelay="[true,false]"
  httpClientRetries="integer"
  autoContinue100Expected="[true,false]"
  printStackTrace="[true,false]">
  <interceptors>
	[interceptors]*
  </interceptors>
</transport>

Sample

<beans>
  <transport coreThreadPoolSize="20">
	<ruleMatching />
	<dispatching />
	<userFeature />

	<transform xslt="strip.xslt" />
	<wsdlRewriter />

	<httpClient />
  </transport>
</beans>

Attributes

NameRequiredDefaultDescriptionExample
backlog false 50
The backlog value passed to {@link java.net.ServerSocket#ServerSocket(int, int, InetAddress)}. The maximum length of the queue of incoming connections. -
printStackTrace false false
Whether the stack traces of exceptions thrown by interceptors should be returned in the HTTP response. -
coreThreadPoolSize false 20
Membrane uses a thread pool to allocate threads to incomming clients connections. The core thread pool size is the minimum number of threads that are created in advance to serve client requests. 5
maxThreadPoolSize false no limit
Maximum number of threads to handle incoming connections. (Membrane uses 1 thread per incoming connection.) 300
reverseDNS false true
Whether the remote address should automatically reverse-looked up for incoming connections. -
socketTimeout false 30000
Socket timout in ms. -
forceSocketCloseOnHotDeployAfter false 30000
When proxies.xml is changed and <router hotDeploy="true">, the Spring Context is automatically refreshed, which restarts the {@link Router} object (=Membrane API Gateway). Before the context refresh, all open socket connections have to be closed. Exchange objects which are still running might delay this process. Setting forceSocketCloseOnHotDeployAfter to a non-zero number of milliseconds forces connections to be closed after this time. -
concurrentConnectionLimitPerIp false -1 No Limit
Limits the number of concurrent connections from one ip -
tcpNoDelay false true
Whether to use the "TCP no delay" option. (=A TCP/IP packet should be constructed as soon as any data has been written to the network buffer. With "TCP no delay" set to false, the network hardware waits a short period of time wether the software will write more data. When the packet constructed from the data in the buffer would exceed the MTU in size, the packet is always constructed and sent immediately.) -

Other optional Child Elements


wsdlRewriter, headerFilter, switch, accessControl, index, return, userFeature, http2xml, gatekeeper, oauth2PermissionChecker, regExReplacer, webServer, jsonPointerExtractor, json2Xml, adminConsole, xml2Json, apiKey, oauth2Resource, jwtAuth, cache, oauth2authserver, xenAuthentication, acmeHttpChallenge, analyser, reverseProxying, graphQLProtection, validator, clamav, wsdlPublisher, greaser, statisticsProvider, log, setProperty, APIsJSON, webSocket, soap2Rest, groovyTemplate, wadlRewriter, routerIpResolver, statisticsJDBC, prometheus, setHeader, swaggerRewriter, static, urlNormalizer, openTelemetry, interceptor, soapOperationExtractor, shadowing, basicAuthentication, authHead2Body, ruleMatching, rest2Soap, javascript, balancer, accessLog, apiDocs, if, kubernetesValidation, sampleSoapService, rewriter, clusterNotification, rateLimiter, login, swaggerApiKeyRequirer, requireAuth, spdy, statisticsCSV, accountRegistration, tcp, flowInitiator, counter, paddingHeader, transform, methodOverride, tokenValidator, soapStackTraceFilter, logContext, formValidation, apiKeyChecker, shutdown, xpathExtractor, limit, apiManagement, xmlContentFilter, beautifier, replace, template, xmlProtection, exchangeStore, throttle, testService, jsonProtection, stompClient, oauth2Resource2, ntlm, webServiceExplorer, httpClient, groovy, dispatching