jdbc14 及 jdbc16 共存所带来的问题【未完待续】

在JAVA中JDK版本与JDBC版本的一致性十分重要,开发都们常常会忽略了这一点导致很多不必要的错误。昨天给客户排查了一个关于EDB在JBoss中使用时关于这方面的问题,希望给大家一点启发。

系统环境:

Red Hat Enterpirse Linux 6

JBoss Enterprise Application Server 6

EnterpriseDB Postgres Plus Advanced Server 9

Oracle JDK 1.6

问题症状:

在JBoss日志中间歇性地出现以下错误

java.sql.SQLException: javax.resource.ResourceException: IJ000453: Unable to get managed connection for java:/jdbc/DSZY101----Caused by: javax.resource.ResourceException: IJ000453: Unable to get managed connection
for java:/jdbc/DSZY101--       at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:390)--         at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:368)--        
at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:464)--         at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:159)--         at jp.co.toyota.perz060.servlet.CCERZ060.getConnection(CCERZ060.java:489)--  
at jp.co.toyota.perz060.servlet.CCERZ060.doPost(CCERZ060.java:118)--         at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)--      at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)-- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)-- 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)--        at jp.co.toyota.pzy1352.util.CIZY1392.doFilter(CIZY1392.java:362)--        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)-- 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)--        at jp.co.toyota.pzy1900.util.CIZY1947.doFilter(CIZY1947.java:99)-- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)-- 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)--        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)--     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)--       
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)--     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)-- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)--    
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)--   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)--     at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:505)--        at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:452)--      
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:931)--      at java.lang.Thread.run(Thread.java:662)----Caused by: javax.resource.ResourceException: IJ000658: Unexpected throwable while trying to create a connection: null--          at
org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.getConnection(SemaphoreArrayListManagedConnectionPool.java:371)--         at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getSimpleConnection(AbstractPool.java:397)--   
at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:365)--   at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:329)--         at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:368)--        
at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:464)--         at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:159)--         at jp.co.toyota.perz060.servlet.CCERZ060.getConnection(CCERZ060.java:489)--  
at jp.co.toyota.perz060.servlet.CCERZ060.doPost(CCERZ060.java:118)--         at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)--      at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)-- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)-- 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)--        at jp.co.toyota.pzy1352.util.CIZY1392.doFilter(CIZY1392.java:362)--        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)-- 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)--        at jp.co.toyota.pzy1900.util.CIZY1947.doFilter(CIZY1947.java:99)-- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)-- 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)--        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)--     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)--       
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)--     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)-- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)--    
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)--   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)--     at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:505)--        at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:452)--      
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:931)--      at java.lang.Thread.run(Thread.java:662)----Caused by: javax.resource.ResourceException: Could not create connection-- at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:277)--        
at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:235)--         at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.createConnectionEventListener(SemaphoreArrayListManagedConnectionPool.java:761)--        
at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.getConnection(SemaphoreArrayListManagedConnectionPool.java:343)--         at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getSimpleConnection(AbstractPool.java:397)--   
at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:365)--   at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:329)--         at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:368)--        
at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:464)--         at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:159)--         at jp.co.toyota.perz060.servlet.CCERZ060.getConnection(CCERZ060.java:489)--  
at jp.co.toyota.perz060.servlet.CCERZ060.doPost(CCERZ060.java:118)--         at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)--      at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)-- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)-- 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)--        at jp.co.toyota.pzy1352.util.CIZY1392.doFilter(CIZY1392.java:362)--        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)-- 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)--        at jp.co.toyota.pzy1900.util.CIZY1947.doFilter(CIZY1947.java:99)-- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)-- 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)--        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)--     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)--       
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)--     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)-- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)--    
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)--   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)--     at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:505)--        at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:452)--      
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:931)--      at java.lang.Thread.run(Thread.java:662)----Caused by: com.edb.util.PSQLException: The connection attempt failed.--        at com.edb.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:189)--  
at com.edb.core.ConnectionFactory.openConnection(ConnectionFactory.java:64)--        at com.edb.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:161)--        at com.edb.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)--
at com.edb.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:23)--   at com.edb.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:31)-- at com.edb.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:25)--     at com.edb.Driver.makeConnection(Driver.java:391)--
at com.edb.Driver.connect(Driver.java:266)--    at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:249)--         at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:235)--        
at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.createConnectionEventListener(SemaphoreArrayListManagedConnectionPool.java:761)--         at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.getConnection(SemaphoreArrayListManagedConnectionPool.java:343)--        
at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getSimpleConnection(AbstractPool.java:397)--    at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:365)--   at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:329)--        
at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:368)--         at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:464)--        
at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:159)--         at jp.co.toyota.perz060.servlet.CCERZ060.getConnection(CCERZ060.java:489)--   at jp.co.toyota.perz060.servlet.CCERZ060.doPost(CCERZ060.java:118)--        
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)--      at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)-- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)--  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)--       
at jp.co.toyota.pzy1352.util.CIZY1392.doFilter(CIZY1392.java:362)--        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)--  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)--       
at jp.co.toyota.pzy1900.util.CIZY1947.doFilter(CIZY1947.java:99)-- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)--  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)--       
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)--     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)--        at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)--    
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)-- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)--     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)--  
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)--     at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:505)--        at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:452)--      
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:931)--      at java.lang.Thread.run(Thread.java:662)----Caused by: java.net.SocketException: Too many open files--      at java.net.Socket.createImpl(Socket.java:397)--  at java.net.Socket.<init>(Socket.java:371)--       
at java.net.Socket.<init>(Socket.java:189)--   at com.edb.core.PGStream.<init>(PGStream.java:70)--     at com.edb.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:115)--   at com.edb.core.ConnectionFactory.openConnection(ConnectionFactory.java:64)--       
at com.edb.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:161)--        at com.edb.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)-- at com.edb.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:23)--  
at com.edb.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:31)-- at com.edb.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:25)--     at com.edb.Driver.makeConnection(Driver.java:391)-- at com.edb.Driver.connect(Driver.java:266)--    at
org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:249)--         at org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:235)--        
at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.createConnectionEventListener(SemaphoreArrayListManagedConnectionPool.java:761)--         at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreArrayListManagedConnectionPool.getConnection(SemaphoreArrayListManagedConnectionPool.java:343)--        
at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getSimpleConnection(AbstractPool.java:397)--    at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:365)--   at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:329)--        
at org.jboss.jca.core.connectionmanager.tx.TxConnectionManagerImpl.getManagedConnection(TxConnectionManagerImpl.java:368)--         at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:464)--        
at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:159)--         at jp.co.toyota.perz060.servlet.CCERZ060.getConnection(CCERZ060.java:489)--   at jp.co.toyota.perz060.servlet.CCERZ060.doPost(CCERZ060.java:118)--        
at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)--      at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)-- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)--  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)--       
at jp.co.toyota.pzy1352.util.CIZY1392.doFilter(CIZY1392.java:362)--        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)--  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)--       
at jp.co.toyota.pzy1900.util.CIZY1947.doFilter(CIZY1947.java:99)-- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)--  at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)--       
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)--     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)--        at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)--    
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)-- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)--     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)--  
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)--     at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:505)--        at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:452)--      
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:931)--      at java.lang.Thread.run(Thread.java:662)--

E 2014-06-15 20:27:44.272 XML - 0 - -

问题分析:

  1. 从上面的错误代码中可见“javax.resource.ResourceException: IJ000658: Unexpected throwable while trying to create a connection: null”,从经验上判断这可能是由于JDK版本与JDBC不匹配所造成的。当前各数据库都有类似的操作方式,通常针对JDK 1.6以下版本,及1.6以上版本会发布不同的JDBC驱动包,以EDB为例会有:

    edb-jdbc14.jar 对应 JDK1.6以下版本;

    edb-jdbc16.jar 对应 JDK1.6及以上版本。

  2. 由以上怀疑点要求客户调出系统中存放JDBC驱动的目录,发现在此目录下同时存在以上两个版本的jar文件,同时此目录中有一个module.xml文件,当中内存如下:

    <modulexmlns="urn:jboss:module:1.0"name="com.edb">

        <resources>

            <resource-rootpath="edb-jdbc16.jar"/>

        </resources>

        <dependencies><modulename="javax.api"/></dependencies>

    </module>

    从此文件中可以看到JBoss中已经明确指定使用edb-jdbc16.jar,因此即使目录中同时也有edb-jdbc14.jar,JBoss应该是不会对它进行调用的。

  3. 进一步分析,客户告知在他们的代码中有可能出现以下操作:

    Class.forName("com.edb.Driver");

    String url      = "jdbc:edb://xxx.xxx.xxx.xxx:5444/edb";

    String user     = "enterprisedb";

    String password = "xxxxxxx";

    Connection con  = DriverManager.getConnection(url, user, password);

    Statement stmt  = con.createStatement();

    ResultSet rs    = stmt.executeQuery("SELECT * FROM emp");

    ......

    由此推断如果客户代码中存在以上操作,在运行此操作时将不授JBoss中的配置影响而直接通过JDK调用可以找到的JDBC。由于目录中存在edb-jdbc14.jar,而从目录的搜索角度14排在16之前,因此程序在执行以上操作时很可能会使用了edb-jdbc14.jar。在JAVA进行数据序列化操作时,因版本不对应就有可能产生以上问题。这就解析了为何只有少量操作报连接无法找到而不是全部数据库连接均报错。

  4. 进一步检查在另一套客户的测试环境中没有出现以上错误,而此测试环境下只有edb-jdbc16.jar驱动
  5. 从EDB数据库方面分析,在数据库日志中并没有在此上述时段收到连接,也没有相应错误。判断:JAVA端在获得连接Socket端口后由于版本不对应,无法序列化,因此可能根本上就没有发送用户名、密码等登陆信息,因此数据库没有任何日志。
  6. 终上所述基本定位问题所在

分析图解:

解决方案:

  1. 申请停机时间,进行完整测试及修复;
  2. 建议将目录中的edb-jdbc14.jar删除;
  3. 严格保证日后所有项目中对应一个数据库只有一个JDBC;
  4. 在JBoss框架下严格使用JNDI或其他公共方式进行连接,避免在JAVA程序中通过直接调用getConnection方式进行数据库连接;

解决结果【未进行】:

当前以上所暴露的问题只是一个推断,由于客户当前是一个生产系统,无法现场进行测试及修复。【未完待续】

jdbc14 及 jdbc16 共存所带来的问题【未完待续】

时间: 2024-10-18 02:25:51

jdbc14 及 jdbc16 共存所带来的问题【未完待续】的相关文章

NFV(Network Function Virtualizatin)·网络功能虚拟化战略实施

学完本课程后,您将能够: 描述NFV基本概念 了解NFV网络技术发展趋势 理解NFV架构 描述NFV与SDN的关系 了解NFV的关键能力 传统运营商网络向NFV演进 思考题和检索 什么是NFV 来自华为的定义:NFV即网络功能虚拟化(Network Functions Virtualization),是一种通过IT虚拟化技术将网络节点功能虚拟为软件模块的网络架构,这些软件模块可以按照业务流连接起来,共同为企业提供通信服务. 来个维基的定义:NFV基于虚拟化,但是又有别于那些用于企业网的基于传统服

redis配置文件基本解析以及RDB持久化与AOF持久化

redis.conf 我们安装成功之后就会有这个配置文件,但是我们一般都不推荐直接使用出厂的配置文件,而是单独拷贝一份使用,以避免我们因为配置错误而带来不必要的麻烦. 如图我单独拷贝了一份在根目录下面的文件夹: redis单元: Tcp-backlog: 设置tcp的backlog,backlog其实是一个连接队列,backlog队列总和=未完成三次握手队列+已经完成三次握手队列. 在这里三次握手队列我参考另一篇博文:https://blog.csdn.net/ityouknow/article

深度复数网络 Deep Complex Networks

转自:https://www.jiqizhixin.com/articles/7b1646c4-f9ae-4d5f-aa38-a6e5b42ec475  (如有版权问题,请联系本人) 目前绝大多数深度学习模型中的数学都是实数值的,近日,蒙特利尔大学.加拿大国家科学院-能源/材料/通信研究中心(INRS-EMT).微软 Maluuba.Element AI 的多名研究者(其中包括 CIFAR Senior Fellow Yoshua Bengio)在 arXiv 上发布了一篇 NIPS 2017(

你会健身吗?

现代的人之所以活的比古代人时间长,得益于医学技术的进步.但实际上现代的人的身体素养却远远落后于古人,科技的进步必定带来负面产物,而这个潜在的危机时时刻刻威胁着每个人的健康. 在科技发达的城市.白领,官员,IT工作者.办公职员等等都受到肥胖的困扰,非常多人首先选择健身减肥.但是这是一个漫长的过程,而效果却是微乎其微,一般人坚持不到三个月就选择了放弃.由于认为非常辛苦:有的人选择节食,痛苦的承受饥饿的折磨,但是往往也是坚持不了多久就功亏一篑.即使坚持下来的人减肥效果也不那么理想.甚至还有反弹的现象.

菜鸟窝React Native 视频系列教程

菜鸟窝React Native 视频系列教程 交流QQ群:576089067 Hi,我是RichardCao,现任新美大酒店旅游事业群的Android Developer.15年加入饿了么即时配送BU,后负责蜂鸟众包Android端,期间引入react-native技术,作为国内react-native 与 Android混合开发的早期商业项目,具有一定经验,同时也是react-native开源项目reading(https://github.com/attentiveness/reading)

基于tiny4412的Linux内核移植 -- MMA7660驱动移植(九-2)

作者信息 作者: 彭东林 邮箱:[email protected] QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:busybox 1.25 交叉编译工具链: arm-none-linux-gnueabi-gcc (gcc version 4

一个Flash开发者从入门到放弃的成长之路

本文将按照入门.成长.转行三个关键词来讲述作者这些年使用Flash进行项目开发的整个历史过程. 一.入门--开始走上Flash的道路. 和Flash的机缘要从大学时代说起.2005年下半年,学校开设了网页三剑客,就是DreamWeaver.Fireworks.Flash三个软件.在那个课程之前,各种课程都是偏理论的课程,比如C.数据库原理.线性代数,这些课程学着都比较枯燥,而这个网页三剑客课程这是实践性非常强,可以做网站.动画之类的.我对这些自然也有很大的兴趣,那时候自己刚刚买了电脑,课间之余,

01-区块链入门之 区块链介绍一-大叔思维

1.区块链技术是什么? 总的来说,区块链是一套协议,一组规范,而不是具体代码.项目. 理解了这套协议,你可以基于现有的技术,以不同的语言去实现它.我们也无法用一句简单的话去概况什么是区块链,站的角度不同,得到的结论也不一样. 金融业: 区块链是一个分布式的账本,是一个分布式的银行记账系统. 密码学者:区块链是使用密码学构建的去信任网络. 码农:区块链就是一个确保最终一致性的分布式数据库. 维基百科:区块链(Blockchain)是一种分布式数据库,起源自比特币.区块链是一串使用密码学方法相关联产

初识AngularJs

今天看看angular.文章将从三个大的部分来说,第一部分什么是angular,第二部分,初次使用时需要注意的一些事项,第三部分,angular基础概念: 一,什么是AngularJs? AngularJs是为了克服html在构建应用上的不足而设计的,它是一个JavaScript框架.通过使用我们称为标识符的结构,让浏览器能够识别新的语法.例如使用{{}}进行数据绑定. AngularJs通过为开发者呈现一个更高层次的抽象来简化应用开发,这在带来方便的同时也导致灵活性的降低.AngularJs主