Connection Shareable测试

本文深入探讨了在使用Java应用程序服务器时如何通过优化XA资源的ConnectionShareable特性来提升性能。通过设置资源共享范围为Shareable,同一应用在同一个线程中连续获取的两个XA链接可以被优化为一个连接,从而实现LocalTransaction,显著提高效率。


Connection Shareable是对XA资源的一个优化。

原因: XA资源的提交代价比较大,如果同一个应用(要求在同一个线程中)连续得到的两个XA链接都是同一个EIS时,那么就可以优化成一个连接,变为了LocalTransaction,提高了性能。


========

测试代码

========

com.sun.appserv.jdbc.DataSource res_unshare = (com.sun.appserv.jdbc.DataSource)ctx.lookup("java:comp/env/DataSourceNoShare");
com.sun.appserv.jdbc.DataSource res_share = (com.sun.appserv.jdbc.DataSource)ctx.lookup("java:comp/env/DataSourceShare");
for(int i=0; i<num; i++) {
 conns[i] = shareable ? res_share.getConnection(res_share.getConnection())
  : res_unshare.getConnection(res_unshare.getConnection());
 rt[i] = conns[i].toString();
}

========

ejb-jar.xml

========

<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:ejb="http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" version="3.0">

  <enterprise-beans>
  	<session>
  		<ejb-name>jcatest</ejb-name>
  		<local>com.jca.test.JCAPool_InitialLocal</local>
  		<resource-ref>
		    <res-ref-name>DataSourceNoShare</res-ref-name>
		    <res-type>javax.sql.DataSource</res-type>
		    <res-auth>Container</res-auth>
		    <res-sharing-scope>Unshareable</res-sharing-scope>
		    <mapped-name>jdbc/__default</mapped-name>
		  </resource-ref>
		  
		  <resource-ref>
		    <res-ref-name>DataSourceShare</res-ref-name>
		    <res-type>javax.sql.DataSource</res-type>
		    <res-auth>Container</res-auth>
		    <res-sharing-scope>Shareable</res-sharing-scope>
		    <mapped-name>jdbc/__default</mapped-name>
		  </resource-ref>
  	</session>
  </enterprise-beans>
</ejb-jar>


D:\1\apache-tomcat-8.5.47\bin\catalina.bat run [2025-07-03 10:04:05,273] Artifact demo1:war exploded: Waiting for server connection to start artifact deployment... [2025-07-03 10:04:05,274] Artifact img: Waiting for server connection to start artifact deployment... Using CATALINA_BASE: "C:\Users\�׵���\AppData\Local\JetBrains\IntelliJIdea2024.2\tomcat\b0e350b9-5b4f-401a-8cad-24459dbe45ae" Using CATALINA_HOME: "D:\1\apache-tomcat-8.5.47" Using CATALINA_TMPDIR: "D:\1\apache-tomcat-8.5.47\temp" Using JRE_HOME: "C:\Program Files\Java\jdk1.8.0_131" Using CLASSPATH: "D:\1\apache-tomcat-8.5.47\bin\bootstrap.jar;D:\1\apache-tomcat-8.5.47\bin\tomcat-juli.jar" Connected to the target VM, address: '127.0.0.1:56431', transport: 'socket' 03-Jul-2025 10:04:07.030 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/8.5.47 03-Jul-2025 10:04:07.032 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建: Oct 7 2019 13:30:46 UTC 03-Jul-2025 10:04:07.032 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 8.5.47.0 03-Jul-2025 10:04:07.033 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 10 03-Jul-2025 10:04:07.033 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本: 10.0 03-Jul-2025 10:04:07.033 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构: amd64 03-Jul-2025 10:04:07.033 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量: C:\Program Files\Java\jdk1.8.0_131\jre 03-Jul-2025 10:04:07.033 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM 版本: 1.8.0_131-b11 03-Jul-2025 10:04:07.033 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商: Oracle Corporation 03-Jul-2025 10:04:07.033 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\Users\孔德旭\AppData\Local\JetBrains\IntelliJIdea2024.2\tomcat\b0e350b9-5b4f-401a-8cad-24459dbe45ae 03-Jul-2025 10:04:07.033 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: D:\1\apache-tomcat-8.5.47 03-Jul-2025 10:04:07.034 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\Users\孔德旭\AppData\Local\JetBrains\IntelliJIdea2024.2\tomcat\b0e350b9-5b4f-401a-8cad-24459dbe45ae\conf\logging.properties 03-Jul-2025 10:04:07.034 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 03-Jul-2025 10:04:07.034 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:56431,suspend=y,server=n 03-Jul-2025 10:04:07.034 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -javaagent:C:\Users\孔德旭\AppData\Local\JetBrains\IntelliJIdea2024.2\captureAgent\debugger-agent.jar 03-Jul-2025 10:04:07.034 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dkotlinx.coroutines.debug.enable.creation.stack.trace=false 03-Jul-2025 10:04:07.034 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Ddebugger.agent.enable.coroutines=true 03-Jul-2025 10:04:07.034 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote= 03-Jul-2025 10:04:07.034 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099 03-Jul-2025 10:04:07.034 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false 03-Jul-2025 10:04:07.035 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.password.file=C:\Users\孔德旭\AppData\Local\JetBrains\IntelliJIdea2024.2\tomcat\b0e350b9-5b4f-401a-8cad-24459dbe45ae\jmxremote.password 03-Jul-2025 10:04:07.035 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.access.file=C:\Users\孔德旭\AppData\Local\JetBrains\IntelliJIdea2024.2\tomcat\b0e350b9-5b4f-401a-8cad-24459dbe45ae\jmxremote.access 03-Jul-2025 10:04:07.035 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1 03-Jul-2025 10:04:07.035 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 03-Jul-2025 10:04:07.035 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources 03-Jul-2025 10:04:07.035 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs= 03-Jul-2025 10:04:07.035 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\Users\孔德旭\AppData\Local\JetBrains\IntelliJIdea2024.2\tomcat\b0e350b9-5b4f-401a-8cad-24459dbe45ae 03-Jul-2025 10:04:07.035 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=D:\1\apache-tomcat-8.5.47 03-Jul-2025 10:04:07.036 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=D:\1\apache-tomcat-8.5.47\temp 03-Jul-2025 10:04:07.036 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library [1.2.23] using APR version [1.7.0]. 03-Jul-2025 10:04:07.036 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true]. 03-Jul-2025 10:04:07.036 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL configuration: useAprConnector [false], useOpenSSL [true] 03-Jul-2025 10:04:07.039 信息 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized [OpenSSL 1.1.1c 28 May 2019] 03-Jul-2025 10:04:07.141 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-8080"] 03-Jul-2025 10:04:07.162 信息 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read 03-Jul-2025 10:04:07.175 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["ajp-nio-8009"] 03-Jul-2025 10:04:07.183 信息 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read 03-Jul-2025 10:04:07.184 信息 [main] org.apache.catalina.startup.Catalina.load Initialization processed in 490 ms 03-Jul-2025 10:04:07.215 信息 [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina] 03-Jul-2025 10:04:07.216 信息 [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.47 03-Jul-2025 10:04:07.232 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-8080"] 03-Jul-2025 10:04:07.251 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["ajp-nio-8009"] 03-Jul-2025 10:04:07.259 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 75 ms Connected to server [2025-07-03 10:04:07,383] Artifact demo1:war exploded: Artifact is being deployed, please wait... [2025-07-03 10:04:07,384] Artifact img: Artifact is being deployed, please wait... 03-Jul-2025 10:04:07.741 警告 [RMI TCP Connection(2)-127.0.0.1] org.apache.tomcat.util.descriptor.web.WebXml.setVersion 未知版本字符串 [4.0]。将使用默认版本。 03-Jul-2025 10:04:11.923 信息 [RMI TCP Connection(2)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。 03-Jul-2025 10:04:11.987 信息 [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.context.ContextLoader.initWebApplicationContext Root WebApplicationContext: initialization started 03-Jul-2025 10:04:12.084 信息 [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.context.support.XmlWebApplicationContext.prepareRefresh Refreshing Root WebApplicationContext: startup date [Thu Jul 03 10:04:12 CST 2025]; root of context hierarchy 03-Jul-2025 10:04:12.164 信息 [RMI TCP Connection(2)-127.0.0.1] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions Loading XML bean definitions from class path resource [spring.xml] SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. 03-Jul-2025 10:04:13.528 警告 [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.context.support.XmlWebApplicationContext.refresh Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.aaa.controller.UserService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)} 03-Jul-2025 10:04:13.534 严重 [RMI TCP Connection(2)-127.0.0.1] org.springframework.web.context.ContextLoader.initWebApplicationContext Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.aaa.controller.UserService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)} at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:321) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:866) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:542) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:443) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:325) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4699) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5165) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:705) at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1720) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:479) at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:428) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) at com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468) at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468) at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76) at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309) at java.security.AccessController.doPrivileged(Native Method) at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1408) at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346) at sun.rmi.transport.Transport$1.run(Transport.java:200) at sun.rmi.transport.Transport$1.run(Transport.java:197) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:196) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:748) Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.aaa.controller.UserService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)} at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1486) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:518) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:496) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:627) at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:169) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318) ... 60 more 03-Jul-2025 10:04:13.537 严重 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file 03-Jul-2025 10:04:13.538 严重 [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors [2025-07-03 10:04:13,577] Artifact demo1:war exploded: Error during artifact deployment. See server log for details. 03-Jul-2025 10:04:13.648 信息 [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。 [2025-07-03 10:04:13,681] Artifact img: Artifact is deployed successfully [2025-07-03 10:04:13,682] Artifact img: Deploy took 6,298 milliseconds 03-Jul-2025 10:04:17.238 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [D:\1\apache-tomcat-8.5.47\webapps\manager] 03-Jul-2025 10:04:17.302 信息 [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。 03-Jul-2025 10:04:17.309 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [D:\1\apache-tomcat-8.5.47\webapps\manager] has finished in [70] ms D:\1\apache-tomcat-8.5.47\bin\catalina.bat stop Disconnected from the target VM, address: '127.0.0.1:56431', transport: 'socket' Using CATALINA_BASE: "C:\Users\�׵���\AppData\Local\JetBrains\IntelliJIdea2024.2\tomcat\b0e350b9-5b4f-401a-8cad-24459dbe45ae" Using CATALINA_HOME: "D:\1\apache-tomcat-8.5.47" Using CATALINA_TMPDIR: "D:\1\apache-tomcat-8.5.47\temp" Using JRE_HOME: "C:\Program Files\Java\jdk1.8.0_131" Using CLASSPATH: "D:\1\apache-tomcat-8.5.47\bin\bootstrap.jar;D:\1\apache-tomcat-8.5.47\bin\tomcat-juli.jar" 03-Jul-2025 10:05:14.875 信息 [main] org.apache.catalina.core.StandardServer.await A valid shutdown command was received via the shutdown port. Stopping the Server instance. 03-Jul-2025 10:05:14.875 信息 [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"] 03-Jul-2025 10:05:15.199 信息 [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-8009"] 03-Jul-2025 10:05:15.529 信息 [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina] 03-Jul-2025 10:05:15.544 信息 [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["http-nio-8080"] 03-Jul-2025 10:05:15.546 信息 [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-nio-8009"] 03-Jul-2025 10:05:15.547 信息 [main] org.apache.coyote.AbstractProtocol.destroy 正在摧毁协议处理器 ["http-nio-8080"] 03-Jul-2025 10:05:15.548 信息 [main] org.apache.coyote.AbstractProtocol.destroy 正在摧毁协议处理器 ["ajp-nio-8009"] Disconnected from server
07-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值