是否存在类似于.net中的数据提供程序使用的标准连接池模型(或API),我可以使用它来实现自己的连接池?
我问,因为我需要将我自己的连接池实现到我们在Web服务中使用的专有TCP/IP设备.当前的问题是由于在IIS下运行的Web服务的线程性质,设备有很多连接(读取太多).我想使用我自己的连接池来限制这些连接的数量,如果有一个我可以使用的标准模型,重新发明轮子似乎很愚蠢.
我在 Websphere 服务器上托管了一个数据源,并且希望通过我的应用程序客户端使用该数据源。
从 JNDI 数据源检索数据库连接后,我将连接的提交设置更改为 false。之后,我将使用这个连接,并在任务完成后关闭该连接。
如果我忘记在关闭之前更改连接的提交设置(我的意思是将连接返回到池中),会发生什么情况。如果任何其他客户端访问此数据源并且它们获得相同的连接,则提交设置是否仍然保留,或者服务器是否会重置这些连接设置。
有谁知道用于汇集网络工作者的良好模式/库?
我希望能够执行以下操作:
或者有更好的方法吗?
我们正在开发IBM WebSphere MQ应用程序,我们使用JMS API来操作消息.但是我们遇到的问题是连接需要花费太多时间,而且我们想要集中JMS连接,因为它是一个独立的应用程序,我们没有应用程序容器来提供JNDI或池服务.那么有解决方案吗?对于JDBC,我们可以使用DBCP或c3p0来归档池化数据源,在JMS中,是否有任何类似的项目可以池化JMS连接?
我正在尝试使用tomcat-dbcp.jar的7.0.30版为tomcat-dbcp创建一个Spring管理的独立池
但是,似乎Tomcat文档中引用的org.apache.tomcat.jdbc.DataSource类(http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html#Standalone)
<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource"
destroy-method="close">
<property name="factory"
value="org.apache.tomcat.jdbc.pool.DataSourceFactory" />
<property name="type" value="javax.sql.DataSource" />
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/ym" />
<property name="username" value="admin" />
<property name="password" value="admin" />
<property name="initialSize" value="5" />
<property name="maxActive" value="10" />
</bean>
Run Code Online (Sandbox Code Playgroud)
所以根据Tomcat doc,这个spring bean定义是正确的,但是当我启动应用程序时,我得到了CNF异常:
Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.tomcat.jdbc.pool.DataSource] for bean with name 'dataSource' defined in class path resource [application-context.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.tomcat.jdbc.pool.DataSource
Run Code Online (Sandbox Code Playgroud)
我是超级愚蠢的,错过了这里显而易见的???
可以请有人告诉我一个真实的例子,哪个方便使用这种工厂方法而不是其他方法?
newSingleThreadExecutor
public static ExecutorService newSingleThreadExecutor()
创建一个Executor,它使用一个在无界队列中运行的工作线程.(但请注意,如果此单个线程由于在关闭之前执行期间的故障而终止,则在需要执行后续任务时将使用新的线程.)保证任务按顺序执行,并且不会有多个任务处于活动状态在任何给定的时间.与其他等效的newFixedThreadPool(1)不同,保证返回的执行程序不可重新配置以使用其他线程.
提前致谢.
...
print('Build model...')
model = Sequential()
model.add(Embedding(max_features, 128))
model.add(LSTM(size, return_sequences=True, dropout_W=0.2 dropout_U=0.2))
model.add(GlobalAveragePooling1D())
model.add(Dense(1))
model.add(Activation('sigmoid'))
....
Run Code Online (Sandbox Code Playgroud)
我需要能够在LSTM层之后的样本中获取所有时间步长的向量的平均值或最大值,然后再将该平均值或最大值提供给Keras中的密集层。
我认为timedistributedmerge
能够做到这一点,但已被弃用。使用return_sequences=True
I可以获取LSTM层之后的样本中所有时间步骤的向量。但是,GlobalAveragePooling1D()
它与屏蔽不兼容,它考虑了所有时间步长,而我只需要非屏蔽时间步长。
我看到了推荐该Lambda
图层的帖子,但这些帖子也没有考虑遮罩。任何帮助,将不胜感激。
Node.js是单线程的。Javascript V8引擎和一些内部库是多线程的。对于I / O,节点将I / O委托给可能是多线程的OS。
如果我的node.js应用程序正在连接到redis或sql / mariadb服务器,我认为我不需要Redis或mysql的连接池。
作为开发人员,我创建了1个redis或mysql连接,并重用它来发送/获取数据。当数据到达时,节点将调用回调以处理数据。
我了解Java / .NET的连接池,但是它们是多线程的,因此Java / .NET中的连接池具有明显的优势。
我的问题是:当节点为单线程时,为什么在node.js中需要连接池?有什么好处吗?如果开发人员不必这样做,节点是否不会利用基础操作系统和JavaScript引擎的多线程功能?
谢谢
我有以下基准测试,它使用堆栈分配、堆分配和 ArrayPool 分配从文件中读取字符串。
我希望堆栈分配是最快的,因为它只是堆栈指针增量,但根据基准 ArrayPool 稍微快一点。
怎么可能?
static void Main(string[] args)
{
BenchmarkRunner.Run<BenchmarkRead>();
}
using BenchmarkDotNet.Attributes;
using System;
using System.Buffers;
using System.IO;
using System.Linq;
namespace RealTime.Benchmark
{
[MemoryDiagnoser]
public class BenchmarkRead
{
const string TestFile = "TestFiles/animals.txt";
public BenchmarkRead()
{
Directory.CreateDirectory(Path.GetDirectoryName(TestFile));
// cca 100 KB of text
string content = string.Concat(Enumerable.Repeat("dog,cat,spider,cat,bird,", 4000));
File.WriteAllText(TestFile, content);
}
[Benchmark]
public void ReadFileOnPool() => ReadFileOnPool(TestFile);
[Benchmark]
public void ReadFileOnHeap() => ReadFileOnHeap(TestFile);
[Benchmark]
public void ReadFileOnStack() => ReadFileOnStack(TestFile);
public void ReadFileOnHeap(string filename)
{
string text …
Run Code Online (Sandbox Code Playgroud) 我没有Java和Spring的经验.我尝试编写一个使用JdbcTemplate进行数据访问的程序.我使用DBCP池,这里是:
<bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@192.168.2.7:1521:xe" />
<property name="username" value="manifesto" />
<property name="password" value="manifesto" />
<property name="initialSize" value="2" />
<property name="maxActive" value="4" />
</bean>
Run Code Online (Sandbox Code Playgroud)
我的应用程序执行多个更新操作,然后抛出异常:
7053 [SenderThread-0] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
Exception in thread "SenderThread-0" org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Listener refused the connection with the following error:
ORA-12519, TNS:no appropriate service handler found
The Connection descriptor used by the client was:
192.168.2.7:1521:xe …
Run Code Online (Sandbox Code Playgroud)