我们的应用程序适用于MySQL,MS SQL Server和Oracle DB.
我们的C3P0配置使用该preferredTestQuery选项来测试连接性.这是我们的Spring配置
<b:bean id="phoenixDataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<b:property name="driverClass" value="${database.driver}"/>
<b:property name="jdbcUrl" value="${database.connectionURL}"/>
<b:property name="user" value="${database.user}"/>
<b:property name="password" value="${database.password}"/>
<b:property name="initialPoolSize"><b:value>${database.initialPoolSize:10}</b:value></b:property>
<b:property name="minPoolSize"><b:value>${database.minPoolSize:1}</b:value></b:property>
<b:property name="maxPoolSize"><b:value>${database.maxPoolSize:25}</b:value></b:property>
<b:property name="acquireRetryAttempts"><b:value>${database.acquireRetryAttempts:10}</b:value></b:property>
<b:property name="acquireIncrement"><b:value>${database.acquireIncrement:5}</b:value></b:property>
<b:property name="idleConnectionTestPeriod"><b:value>${database.idleConnectionTestPeriod:60}</b:value></b:property>
<b:property name="maxIdleTime"><b:value>${database.maxIdleTime:10800}</b:value></b:property>
<b:property name="maxConnectionAge"><b:value>${database.maxConnectionAge:14400}</b:value></b:property>
<b:property name="preferredTestQuery"><b:value>${database.preferredTestQuery:SELECT 1}</b:value></b:property>
<b:property name="testConnectionOnCheckin"><b:value>${database.testConnectionOnCheckin:false}</b:value></b:property>
<b:property name="testConnectionOnCheckout"><b:value>${database.testConnectionOnCheckout:false}</b:value></b:property>
</b:bean>
Run Code Online (Sandbox Code Playgroud)
SELECT 1对于Oracle没有有效查询,但SELECT 1 FROM DUAL除非我们创建DUAL对象,否则它不是SQL Server的有效查询.
非常简单的问题:是否有任何SELECT或只是无害的查询可以在所有平台上普遍用于测试连接?
我可以在Oracle安装的属性文件中覆盖database.preferredTestQuery,但我仍然想知道是否有可行的通用解决方案.
[编辑]连接检查由C3P0独立于我的代码进行.当查询失败时(如果启用了调试日志记录),它会在日志中写入错误.我的代码没有使用该查询,它是C3P0配置的一部分,因为该工具自行检查是否建立了连接(因为这是我的理解).我不能,如果 - 否则那么.目前,仅通过配置覆盖Oracle安装的查询是可行的.
顺便说一句,即使我可以通过代码测试方言实现,问题也可以改为"为了测试连接性,我可以运行通用查询,还是必须运行特定于DBMS?" 或类似的东西
我的应用程序最多运行180个AJAX作业,这些作业在服务器端是IO密集型的(长时间运行的SELECT查询).
我想优化我可用的多个CPU内核的负载,从每个AJAX调用顺序执行的设计切换到执行这些请求的设计,最多并行执行4个请求.
一个可能但丑陋的解决方案可能是在客户端上同时发出所有180个请求,并让服务器使用Semaphore存储的Session或者Application级别.我将在稍后讨论应用程序工作负载.
我想找到一个更好的解决方案,其中调用全部按顺序启动(表上的每一行是一个不同的检查查询)但是当任何终止时,下一个启动并且有一些(即4个)并发AJAX请求与各自的装载机指标.
我曾尝试使用Threadpool-js,但我发现自己无法使用工作者的jQuery
我目前的代码如下
function GlobalCheck() { //entry point
if (ValidateDate()) {
//Below are global variables
list = $(".chkClass:checked"); //Only checked rows deal to AJAX request
num = $(".chkClass:checked").length; //Total number of ajax calls
done = 0; //Count of complete calls. When it reaches num we are done!
if (list.length == 0) {
alert('...');
return;
}
$(".pMessage").fadeOut();
$(".tbStatus").html('');
$(".submit").hide();
$(".exportFunctions").fadeOut();
$(".loader").show();
$(":checkbox").attr('disabled', true);
SingleCheck(0); //simplification, I do other …Run Code Online (Sandbox Code Playgroud) 我正在从C#转向Java,我需要实现一组异步任务.
我非常了解Java线程,但我喜欢.NET BeginInvoke和EndInvoke方法,因为它们允许我轻松地从同步切换到异步任务.
在我的例子中,如果我有一组I/O密集型操作(适合更改为异步),如下所示:
DoOperation1();
DoOperation2();
DoOperation3();
Run Code Online (Sandbox Code Playgroud)
在.NET中,我很容易做到这样的事情:
BeginInvoke(DoOperation1);
BeginInvoke(DoOperation2);
BeginInvoke(DoOperation3);
EndInvoke(Result1);
EndInvoke(Result2);
EndInvoke(Result3);
Run Code Online (Sandbox Code Playgroud)
简而言之,我的问题是:Java中有类似的东西,还是我需要手动使用线程"旧方法"?
谢谢.
我已在Windows Server 2008 R2上为我的IIS安装配置了Web Deploy.
我在为域名购买有效证书之前这样做了,因此第一次获取有关自签名证书的Visual Studio警告是正常的.
但是,在我们为域名购买了有效证书后,我不知道如何告诉Web部署使用新证书(我直接发布到https://www.example.org).警告是关于计算机的自签名证书,使用计算机名称作为主机名.
服务器不在AD域中或某种程度上.
有帮助吗?谢谢
我只需要for在JSF/ICEFaces中执行一个非常基本的循环,基本上是渲染列号
类似下面的伪代码
for(int i=0; i<max; i++)
{
<td>#{i}</td>
}
Run Code Online (Sandbox Code Playgroud)
在<c:forEach>超过集合标记迭代,但我不想让我的支持bean更复杂返回整数的一个愚蠢的集合.
你知道更短更智能的方式吗?
谢谢
由于这个问题,我几天就撞到了墙上.
我开发了一个基于CXF的测试客户端(契约优先服务)并从控制台运行它.它工作得很好,只需遵循关于客户端的CXF教程并将CXF jar添加到类路径中
Main.java
XmlValidator_Service service = new XmlValidator_Service(new URL("http://localhost:50501/edwin?wsdl"));
XmlValidator proxy = service.getXmlValidationService();
BindingProvider provider = (BindingProvider) proxy;
provider.getRequestContext()
.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://localhost:50501/edwin/XmlValidator");
ValidationResult result = proxy.validate("C:\\phoenix\\edwin\\filerepository\\2014\\03\\17\\15\\09\\EDWIN_20140317_150913.xml",
XsdSchema.EDWIN_CONSUMER_CREDIT);
System.out.println(new ObjectMapper().writeValueAsString(result));
Run Code Online (Sandbox Code Playgroud)
第4步:我将该代码集成到在Tomcat 6上运行的Web应用程序项目中,但是当我点击Web服务时,我得到了主题中的错误.
从Tomcat项目运行主类使用以下类路径:
15/11/2013 11:01 55.147 activation-1.0.2.jar
15/11/2013 10:59 443.432 antlr-2.7.6.jar
15/11/2013 10:59 4.467 aopalliance-1.0.jar
15/11/2013 10:59 200.050 asm-all-3.1.jar
15/11/2013 11:02 114.980 aspectjrt-1.5.4.jar
15/11/2013 11:02 1.894.165 aspectjweaver-1.5.4.jar
23/02/2011 05:10 174.074 bcpg-jdk16-1.46.jar
15/11/2013 11:02 1.876.535 bcprov-jdk16-1.46.jar
15/11/2013 10:59 608.376 c3p0-0.9.1.jar
15/11/2013 11:00 278.682 cglib-2.2.jar
15/11/2013 11:00 176.447 …Run Code Online (Sandbox Code Playgroud) 根据公司政策,所有拉动除非与技术主管达成一致,否则必须使用rebase而不是合并.
我使用Eclipse并成功设置默认的拉模式到我的所有分支(尽管Eclipse建议合并为默认模式).
我的同事,在我的同一个项目上工作,使用IntelliJ Idea.你猜怎么着?他总是忘记在拉动时检查pull-with-rebase,最后进行无休止的合并提交.
我经常不得不抱怨他违反我花了很长时间制定标准的规则,然后我需要强行推动修复树上的混乱.这里只有2个人使用IntelliJ,其他人使用Eclipse并且没有使用Git的问题.
如何在IntelliJ Idea中设置默认拉模式?
我正在研究OAuth 2.0协议.
我遇到了为不在Web服务器上运行的桌面/移动应用程序生成承载令牌的问题.
对于Web应用程序,OAuth 2.0协议流程对我来说很清楚.假设myapp.com想要protectedresource.com代表用户Alice 访问,那么Alice被重定向到https://protectedresource.com/oauth?redirect_uri=https://myapp.com/oauth&[...]所以资源管理器在获得同意后,将Alice的浏览器重定向到将收集授权代码并使用它来获取承载令牌的页面.
这工作正常且安全,因为protectedresource.com识别myapp.com域并仅将来自令牌的令牌令牌释放myapp.com
如果我正在运行桌面应用程序,即使支持浏览器(即在Windows窗体中嵌入HTML查看器或类似的东西)我应该在同意后重定向Alice?
谁收集授权码?控制流如何变化?
有没有人有在桌面或Android上运行的OAuth 2.0实现的示例?
好的,我还没有找到更好的方法来标题我的问题.解释方案更容易.但请记住这是一个Github问题,而不是 Prototype-JS问题(请不要为我添加标签)
我正在研究基于Prototype的Web应用程序.我发现1.7.1(对作者没有责备)有一些令我们讨厌的错误.幸运的是,对于我们来说,所有这些错误确实通过已经被主分支接受的拉取请求进行公开修复.
我的老板和我讨论了为我们发现的每个不兼容性修补Prototype 1.7.1之间的选择,我们同意在即将生产的应用程序中使用"开发"版本不是最好的选择,所以我们的想法是修补我们的Prototype版本.
我对此负责.因为我想跟踪我的公司应用于Prototype的变化(即使我是唯一一个触摸JS文件的人),我想以一种有效的方式来做,可以留给后代.
Github允许您将任何项目分成您自己的工作区,以便您可以随意使用它.我想通过实际将它们链接到对原始项目的现有拉取请求来跟踪我导入Prototype的补丁.
鉴于Github上的一个通用开源项目,我已经分叉了,有没有什么方法可以找到提交给原始分支的pull请求,并选择在我自己的fork中"导入"它(假设文件应该是diff-兼容)这样它将被应用到我的分支?
当然,随着时间的推移,这使我能够跟踪记录(通过评论和讨论)关于我选择在我的分支中导入哪些 PR 以及哪些 PR没有.
由于ByteArrayInputStream限制为2GB,是否有任何替代解决方案允许我将2.3GB(可能更大)文件的全部内容存储InputStream到Stax2中以供读取?
当前代码:
XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(in); //ByteArrayInputStream????
try
{
SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
Schema schema = factory.newSchema(new StreamSource(schemaInputStream));
Validator validator = schema.newValidator();
validator.validate(new StAXSource(xmlStreamReader));
}
finally
{
xmlStreamReader.close();
}
Run Code Online (Sandbox Code Playgroud)
对于性能调整,变量in不得来自磁盘.我有很多 RAM.