我们使用Oracle作为Web应用程序的数据库.应用程序在大多数时间运行良好,但我们得到"没有更多数据从套接字读取"错误.
Caused by: java.sql.SQLRecoverableException: No more data to read from socket
at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1142)
at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1099)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:288)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:863)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1153)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1275)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3576)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3620)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1869)
at org.hibernate.loader.Loader.doQuery(Loader.java:718)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270)
at org.hibernate.loader.Loader.doList(Loader.java:2449)
... 63 more
Run Code Online (Sandbox Code Playgroud)
我们使用spring,hibernate,我的applciation上下文文件中的数据源有以下内容.
<bean class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close" id="dataSource">
<property name="driverClassName" value="${database.driverClassName}" />
<property name="url" value="${database.url}" />
<property name="username" value="${database.username}" />
<property name="password" value="${database.password}" />
<property name="defaultAutoCommit" value="false" />
<property name="initialSize" value="10" …Run Code Online (Sandbox Code Playgroud) 我使用以下代码来获取路径
Path errorFilePath = FileSystems.getDefault().getPath(errorFile);
Run Code Online (Sandbox Code Playgroud)
当我尝试使用File NIO移动文件时,我收到以下错误:
java.nio.file.InvalidPathException: Illegal char <:> at index 2: \C:\Sample\sample.txt
Run Code Online (Sandbox Code Playgroud)
我也试过使用URL.encode(errorFile)哪个导致同样的错误.
我已经阅读了这个Process Memory Vs Heap - JVM ,我遇到了同样的问题.
jvm进程内存使用量不断增加而且从不收缩.我通过在linux服务器上做一个top来检查.应用程序正在将作业调度到集群(使用Quartz + Sun Java DRMAA API)
在应用程序生命周期中,Java堆空间保持在限制范围内,但是jvm进程显示内存使用量稳步攀升并且永远不会下降.
这是内存泄漏吗?如果是这样,为什么堆空间在限制范围内.有人可以解释一下吗.
更新:当我通过jconsole跟踪时,我有-Xmx1600m -Xms1600m我可以看到堆空间在这个限制范围内,距离为450m,但是top命令显示该进程使用超过900m.
我正在使用 cloudformation 在启用版本控制的 S3Bucket 中使用代码创建我的 lambda 函数。
"MYLAMBDA": {
"Type": "AWS::Lambda::Function",
"Properties": {
"FunctionName": {
"Fn::Sub": "My-Lambda-${StageName}"
},
"Code": {
"S3Bucket": {
"Fn::Sub": "${S3BucketName}"
},
"S3Key": {
"Fn::Sub": "${artifact}.zip"
},
"S3ObjectVersion": "1e8Oasedk6sDZu6y01tioj8X._tAl3N"
},
"Handler": "streams.lambda_handler",
"Runtime": "python3.6",
"Timeout": "300",
"MemorySize": "512",
"Role": {
"Fn::GetAtt": [
"LambdaExecutionRole",
"Arn"
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
lambda 函数创建成功。当我将新的工件 zip 文件复制到 s3bucket 时,会使用新版本的“S3ObjectVersion”字符串创建该文件的新版本。但是 lambda 函数代码仍然使用旧版本。
aws cloudformation 的文档清楚地说明了以下内容
要更新源代码位于 Amazon S3 存储桶中的 Lambda 函数,您必须通过更新 S3Bucket、S3Key 或 S3ObjectVersion 属性来触发更新。单独更新源代码不会更新函数。
是否有额外的触发事件,我需要创建以更新代码?
我试图通过JCIFS访问公司网络中的共享文件夹.但是,当我尝试列出共享文件夹下的文件时,它会抛出一个SmbException,如下所示,
jcifs.smb.SmbException: 0xC000009A
at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563)
at jcifs.smb.SmbTransport.send(SmbTransport.java:663)
at jcifs.smb.SmbSession.sessionSetup(SmbSession.java:316)
at jcifs.smb.SmbSession.send(SmbSession.java:218)
at jcifs.smb.SmbTree.treeConnect(SmbTree.java:176)
at jcifs.smb.SmbFile.doConnect(SmbFile.java:911)
at jcifs.smb.SmbFile.connect(SmbFile.java:954)
at jcifs.smb.SmbFile.connect0(SmbFile.java:880)
at jcifs.smb.SmbFile.getType(SmbFile.java:1282)
at jcifs.smb.SmbFile.doEnum(SmbFile.java:1733)
at jcifs.smb.SmbFile.listFiles(SmbFile.java:1715)
at jcifs.smb.SmbFile.listFiles(SmbFile.java:1648)
Run Code Online (Sandbox Code Playgroud)
0xC000009A说它是NT_STATUS_INSUFFICIENT_RESOURCES但是我需要做些什么来解决这个问题.共享文件夹只能由我自己访问.我使用了以下网址格式.
smb://domain;username:password@ip-address/<foldername>
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助.
我们正在使用java,spring,hibernate和其他一些现成的库来开发诊断应用程序.根据FDA指南(和咨询公司),如果开源库位于应用程序的关键路径中,则应对其进行白盒测试(因为我们有源代码).
如果我要读取的数据库表行,它会采取API的调用数百从因为交易的数据库获取的单排,休眠HQL-SQL,过程中涉及的JDBC API.
这是否意味着我必须验证每个API调用.?
我们是否应该将java也视为第三方库并验证我们在应用程序中使用的每个api调用?
不足以对这些库进行黑盒测试吗?
是否有使用spring/hibernate和其他开源库的医疗设备/诊断/医院软件?
我非常有兴趣知道你们中有些人是否遇到过这种情况以及你们是如何解决这个问题的?
感谢你的时间!谢谢.
我正在使用来自https://github.com/domaemon/org.apache.cordova.plugin.tts的TTS插件但是该插件似乎不起作用.它甚至没有初始化.
安装如下插件(PHONEGAP 3.3)
phonegap plugin add https://github.com/domaemon/org.apache.cordova.plugin.tts.git
phonegap build android
Run Code Online (Sandbox Code Playgroud)
在phonegap config.xml中添加了以下内容
<gap:plugin name="org.apache.cordova.plugins.tts" value="org.apache.cordova.plugins.tts"/>
Run Code Online (Sandbox Code Playgroud)
在我的javascript中添加了以下代码
window.plugins.tts.startup(startupWin, fail);
function startupWin(result) {
console.log("Startup win");
// When result is equal to STARTED we are ready to play
if (result == TTS.STARTED) {
window.plugins.tts.getLanguage(win, fail);
window.plugins.tts.speak("The text to speech service is ready");
window.plugins.tts.isLanguageAvailable("en_US", function() {
addLang("en_US", "English (American)");
}, fail);
window.plugins.tts.isLanguageAvailable("en_GB", function() {
addLang("en_GB", "English (UK)");
}, fail);
window.plugins.tts.isLanguageAvailable("fr", function() {
addLang("fr", "French");
}, fail);
window.plugins.tts.isLanguageAvailable("de", function() {
addLang("de", "German");
}, …Run Code Online (Sandbox Code Playgroud) 是否可以在Java应用程序中集成webkit引擎.
这是我的想法,我想在Java中使用javascript和业务逻辑实现我的用户界面,并希望在js和java之间来回通信.我看过钛和铬合金.但我没有得到完整的图片.任何人都可以给我一个很好的解释,在独立的应用程序中使用webkit.
我一直试图在我的应用程序中找到内存泄漏一周,但没有任何成功.我尝试进行堆转储并使用jhat查看转储并追踪内存泄漏.
这是最好的方法吗?什么是使用堆转储追踪内存泄漏的最佳方法.
感谢您的帮助.
使用的VM: java版"1.6.0_25"Java(TM)SE运行时环境(版本1.6.0_25-b06)Java HotSpot(TM)64位服务器VM(版本20.0-b11,混合模式)
JVM选项: -Xmx1600m -XX:+ UseParallelGC -XX:MaxPermSize = 256m -Xms1600m -XX:+ HeapDumpOnOutOfMemoryError -XX:+ PrintGCDetails -XX:+ PrintGCTimeStamps -verbose:gc -Xloggc:/tmp/gc.log
OOME Stack trace:无法得到这个.内核因内存不足错误而终止进程.
GC日志:最后几行
48587.245: [GC [PSYoungGen: 407168K->37504K(476160K)] 506729K->137065K(1568448K), 3.0673560 secs] [Times: user=3.53 sys=0.00, real=3.07 secs]
50318.617: [GC [PSYoungGen: 444224K->37536K(476416K)] 543785K->175177K(1568704K), 3.6635990 secs] [Times: user=3.70 sys=0.00, real=3.67 secs]
50453.841: [GC [PSYoungGen: 70092K->2912K(476672K)] 207734K->178513K(1568960K), 1.0164250 secs] [Times: user=1.29 sys=0.00, real=1.02 secs]
50454.858: [Full GC (System) [PSYoungGen: 2912K->0K(476672K)] [PSOldGen: 175601K->137776K(1092288K)] 178513K->137776K(1568960K) [PSPermGen: 60627K->60627K(74368K)], 2.0082140 secs] [Times: user=2.09 sys=0.00, …Run Code Online (Sandbox Code Playgroud) 我在Spring 3.1.3发行版和以下应用程序上下文文件中遇到了这个问题.我不太清楚为什么会这样.已经查看了与此相关的大部分帖子.我不认为我的版本不匹配.
应用上下文文件:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:security="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.1.xsd">
<security:http auto-config='true' entry-point-ref="casEntryPoint" >
<security:intercept-url pattern="/panelpipeline/**" access="ROLE_USER"/>
<security:intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
</security:http>
<bean id="serviceProperties" class="org.springframework.security.cas.ServiceProperties">
<property name="service"
value="https://seqdws1/cas/j_spring_cas_security_check" />
<property name="sendRenew" value="false" />
</bean>
<security:http entry-point-ref="casEntryPoint">
<security:custom-filter position="CAS_FILTER"
ref="casFilter" />
</security:http>
<bean id="casFilter"
class="org.springframework.security.cas.web.CasAuthenticationFilter">
<property name="authenticationManager" ref="authenticationManager" />
</bean>
<bean id="casEntryPoint"
class="org.springframework.security.cas.web.CasAuthenticationEntryPoint">
<property name="loginUrl" value="https://seqdws1/cas/login" />
<property name="serviceProperties" ref="serviceProperties" />
</bean>
<security:authentication-manager alias="authenticationManager">
<security:authentication-provider
ref="casAuthenticationProvider" />
</security:authentication-manager>
<bean id="casAuthenticationProvider"
class="org.springframework.security.cas.authentication.CasAuthenticationProvider">
<property name="userDetailsService" ref="userService" />
<property name="serviceProperties" ref="serviceProperties" />
<property name="ticketValidator"> …Run Code Online (Sandbox Code Playgroud)