本文将分享已插入SQLServer数据但客户端未收到响应的详细内容,并且还将对sqlserver加载数据库进行详尽解释,此外,我们还将为大家带来关于grpc客户端未收到服务器流数据、IISSOAPWe
本文将分享已插入 SQL Server 数据但客户端未收到响应的详细内容,并且还将对sql server加载数据库进行详尽解释,此外,我们还将为大家带来关于grpc 客户端未收到服务器流数据、IIS SOAP Web 服务 - 客户端未收到响应、Netty websocket开发,发送消息客户端未收到、OpenVPN v3 Dbus 客户端未收到所有信号的相关知识,希望对你有所帮助。
本文目录一览:- 已插入 SQL Server 数据但客户端未收到响应(sql server加载数据库)
- grpc 客户端未收到服务器流数据
- IIS SOAP Web 服务 - 客户端未收到响应
- Netty websocket开发,发送消息客户端未收到
- OpenVPN v3 Dbus 客户端未收到所有信号
已插入 SQL Server 数据但客户端未收到响应(sql server加载数据库)
如何解决已插入 SQL Server 数据但客户端未收到响应?
我有一个 Java jdbc 客户端将数据插入到 sql 服务器中的表中。在某些时候 sql 服务器会正常停止。我的客户收到此异常
at com.microsoft.sqlserver.jdbc.sqlServerConnection.terminate(sqlServerConnection.java:2392)
at com.microsoft.sqlserver.jdbc.sqlServerConnection.terminate(sqlServerConnection.java:2376)
at com.microsoft.sqlserver.jdbc.TDSChannel.read(IOBuffer.java:1900)
at com.microsoft.sqlserver.jdbc.TDSReader.readPacket(IOBuffer.java:6674)
at com.microsoft.sqlserver.jdbc.TDSCommand.startResponse(IOBuffer.java:7989)
at com.microsoft.sqlserver.jdbc.sqlServerStatement.doExecuteStatement(sqlServerStatement.java:901)
at com.microsoft.sqlserver.jdbc.sqlServerStatement$StmtExecCmd.doExecute(sqlServerStatement.java:796)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7535)
at com.microsoft.sqlserver.jdbc.sqlServerConnection.executeCommand(sqlServerConnection.java:2438)
at com.microsoft.sqlserver.jdbc.sqlServerStatement.executeCommand(sqlServerStatement.java:208)
at com.microsoft.sqlserver.jdbc.sqlServerStatement.executeStatement(sqlServerStatement.java:183)
at com.microsoft.sqlserver.jdbc.sqlServerStatement.executeUpdate(sqlServerStatement.java:721)
但是,当sql server启动时,我可以看到这个数据实际上插入到了我的表中。
我想知道
- 停止 sql 服务器的行为。服务端是否可以插入数据并停止而不回复客户端
- 无法正确处理 sql 服务器停止的 JDBC 驱动程序或客户端的任何问题。
- 类似于在 sql 服务器启动后发生前滚之类的事情。
非常感谢有关如何分析此场景的任何帮助或指示。
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
grpc 客户端未收到服务器流数据
如何解决grpc 客户端未收到服务器流数据?
我正在尝试通过 grpc 流式传输 nodejs 子进程输出,但一直得到空结果。
给定我的原型文件。
Syntax = "proto3";
package servicePackage;
service Mobile {
rpc sign(Empty) returns (stream SHA256Info);
}
message Empty {}
message SHA256Info {
string signature = 1;
}
还有我的 grpc 服务器代码
function sign(call,callback) {
const cp = require(''child_process'');
var signature = "";
let child = cp.exec(''keytool -list -v -keystore android.keystore -alias android -storepass hardcodedstorepass -keypass hardcodedkeypass'',{ cwd: "./output" });
child.on(''exit'',function (code,signal) {
console.log(''process exited with '' + `code ${code} and signal ${signal}`);
call.end();
});
child.stdout.on(''data'',(data) => {
if (data.includes("Certificate fingerprints:")) {
var sig = data.substring(data.indexOf("SHA256:"));
signature = sig;
call.write({"SHA256Info": signature});
}
});
child.stderr.on(''data'',(data) => {
//console.error(`stderr:\n${data}`);
});
}
还有我的 grpc 客户端代码
const call = client.sign({});
call.on("data",signature => {
console.log("STREAMED data => " + JSON.stringify(signature));
})
call.on("end",e => console.log("server done!"));
我得到的结果是:
{} //<------ empty result
server done!
我的问题是我做错了什么导致空结果?
解决方法
我成功地匹配了消息 SHA256Info
中给出的确切成员名称所以代替
call.write({"SHA256Info": signature});
正确的返回值应该是
call.write({ "signature": signature });
这里是消息结构
message SHA256Info {
string signature = 1; //<--- you should return matching structure
}
IIS SOAP Web 服务 - 客户端未收到响应
如何解决IIS SOAP Web 服务 - 客户端未收到响应?
我尝试使用基于 IIS 的 .NET 3rd 方 SOAP 网络服务。
当在一个 HTTP 套接字连接中运行大量请求时(客户端为每个请求重用 TCP 套接字),我偶尔会遇到一个停顿,即客户端没有收到来自服务器的响应。
套接字保持打开状态,我可以看到正在发送 TCP KeepAlive 数据包,但没有来自服务器的数据到达。这种情况非常断断续续,很难重现。
服务器正在接收 SOAP 请求并对其执行操作(我可以在服务器的数据库中看到相应的工件)。
没有 IIS 或 Windows 错误或事件。
预期的 SOAP 响应相当小(小于 300 字节),所以我认为可能有一个包含响应的丢弃数据包,但我从未看到重传。
最终,客户端应用程序在等待响应(返回的soap调用)时超时。
使用wireshark,我偶尔会看到SpurIoUs Retransmissions,所以客户端和服务器之间的底层连接不是100%。服务器和客户端之间的路径是曲折的,经过一系列 VPN,一个到办公室 VPN,然后再经过 AWS 中转网关 VPN。
我的问题是:如果响应数据包被丢弃,为什么服务器的 TCP 堆栈没有重新发送它?应该有一个重传计时器到期并导致重传,但是当发生停顿时,服务器不再发送应用程序数据。
为了找出问题所在,我设置了一个测试,通过该测试我一遍又一遍地发出相同的 SOAP 请求,但是每个请求都有一个全新的 TCP 连接,当我这样做时,我从来没有看到摊位。
我不确定我是在处理 IIS 还是 Windows 配置问题,还是某种服务器错误。
有没有其他人看过这个?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
Netty websocket开发,发送消息客户端未收到
在开发 Netty websocket项目中,遇到一个低级搞笑的问题:通过 Netty 提供的发送数据的三种方式发送数据至客户端,发送端没有抛出任何异常,但是客户端就是没有收到数据。发送数据的的三种方式如下:
channelHandlerContext.writeAndFlush("QQ");
channel.writeAndFlush("QQ");
channelPipeline.writeAndFlush("QQ")
网上的方案有:
1、 channelHandlerContext.writeAndFlush(Unpooled.copiedBuffer("Netty test", CharsetUtil.UTF_8))
2、在 ChannelInitializer中增加注册 StringEncoder, StringDecoder,
....
这些方案在我这边尝试了都不行,崩溃的去呼吸下新鲜空气,忽然想起我现在正在开发的是用websocket, 消息格式应该用netty提供的格式: BinaryWebSocketFrame 、TextWebSocketFrame等之类, 这样客户端接收了才能正确处理
channel.writeAndFlush(new TextWebSocketFrame("QQ")) // ok
OpenVPN v3 Dbus 客户端未收到所有信号
如何解决OpenVPN v3 Dbus 客户端未收到所有信号?
我正在为 Linux Mint/Cinnamon 编写一个 Applet 来管理 OpenVPN v3 连接。
为了避免可能导致 DE 卡顿或冻结的同步调用,我正在使用 GJS 提供的 Gio
和 GLib
库编写一个简单的 DBus 客户端。这允许异步的、部分事件驱动的方法,并且应该避免任何令人讨厌的副作用。这是我第一次使用这些技术中的任何一种,但 OpenVPN DBus API 是 pretty well documented,Gio and GLib 的 API 文档也很好。
我遇到的问题是信号订阅,特别是 StatusChange
服务发布的 net.openvpn.v3.sessions
信号。每当建立、暂停、恢复或关闭连接时,就会发布一堆这些信号。大多数信号都被我订阅的听众接收到,但不是全部。特别是,我没有收到 session closed
信号。
使用 dbus-monitor
命令行工具,您可以看到在建立连接(7 个信号)然后关闭(2 个信号)时发布的所有 StatusChange
信号:
$ sudo dbus-monitor --system "type=''signal'',interface=''net.openvpn.v3.sessions'',member=''StatusChange''"
...
// Connect:
signal time=1625847543.107244 sender=:1.891 -> destination=:1.892 serial=2745 path=/net/openvpn/v3/sessions/052850e7s915fs483esb3e7s3afb389a2e49; interface=net.openvpn.v3.sessions; member=StatusChange
uint32 3
uint32 27
string "session_path=/net/openvpn/v3/sessions/052850e7s915fs483esb3e7s3afb389a2e49,backend_pid=42584"
signal time=1625847543.116395 sender=:1.891 -> destination=:1.892 serial=2762 path=/net/openvpn/v3/sessions/052850e7s915fs483esb3e7s3afb389a2e49; interface=net.openvpn.v3.sessions; member=StatusChange
uint32 3
uint32 17
string "session_path=/net/openvpn/v3/sessions/052850e7s915fs483esb3e7s3afb389a2e49 backend_busname=net.openvpn.v3.backends.be42585 backend_path=/net/openvpn/v3/backends/session"
signal time=1625847543.117286 sender=:1.891 -> destination=(null destination) serial=2764 path=/net/openvpn/v3/sessions/052850e7s915fs483esb3e7s3afb389a2e49; interface=net.openvpn.v3.sessions; member=StatusChange
uint32 2
uint32 2
string "config_path=/net/openvpn/v3/configuration/9dd3fa9cxb6e0x48acxaa1ex566312bea232"
signal time=1625847543.638519 sender=:1.891 -> destination=(null destination) serial=2775 path=/net/openvpn/v3/sessions/052850e7s915fs483esb3e7s3afb389a2e49; interface=net.openvpn.v3.sessions; member=StatusChange
uint32 2
uint32 2
string "config_path=/net/openvpn/v3/configuration/9dd3fa9cxb6e0x48acxaa1ex566312bea232"
signal time=1625847543.638533 sender=:1.891 -> destination=(null destination) serial=2776 path=/net/openvpn/v3/sessions/052850e7s915fs483esb3e7s3afb389a2e49; interface=net.openvpn.v3.sessions; member=StatusChange
uint32 2
uint32 6
string ""
signal time=1625847543.735357 sender=:1.891 -> destination=(null destination) serial=2777 path=/net/openvpn/v3/sessions/052850e7s915fs483esb3e7s3afb389a2e49; interface=net.openvpn.v3.sessions; member=StatusChange
uint32 2
uint32 6
string ""
signal time=1625847543.974784 sender=:1.891 -> destination=(null destination) serial=2778 path=/net/openvpn/v3/sessions/052850e7s915fs483esb3e7s3afb389a2e49; interface=net.openvpn.v3.sessions; member=StatusChange
uint32 2
uint32 7
string ""
// disconnect:
signal time=1625847646.846790 sender=:1.891 -> destination=:1.892 serial=2834 path=/net/openvpn/v3/sessions/052850e7s915fs483esb3e7s3afb389a2e49; interface=net.openvpn.v3.sessions; member=StatusChange
uint32 3
uint32 28
string "Session closed"
signal time=1625847646.848262 sender=:1.891 -> destination=:1.892 serial=2839 path=/net/openvpn/v3/sessions/052850e7s915fs483esb3e7s3afb389a2e49; interface=net.openvpn.v3.sessions; member=StatusChange
uint32 3
uint32 19
string ""
以下代码创建了一个订阅,据我所知,它应该接收到与上面相同的信号。注意我在这里使用较低级别的方法来获取订阅;订阅是在全局连接上进行的,而不是通过特定对象路径的 DBusProxy
。我已经尝试了两种方法(相同的结果),但以下应该更接近于上面的 dbus-monitor
命令。
subscribetoStatusChangeSignals() {
this.statusChangeHandlerId = Gio.DBus.system.signal_subscribe(
''net.openvpn.v3.sessions'',''net.openvpn.v3.sessions'',''StatusChange'',null,Gio.DBusSignalFlags.NONE,this._handleGlobalStatusChangeSignal
);
}
_handleGlobalStatusChangeSignal(connection,sender,path,iface,signal,params) {
let container = params.deep_unpack();
let statusMajorCode = container[0];
let statusMinorCode = container[1];
let statusMajor = lookupStatusMajor(statusMajorCode); // lookup the corresponding text
let statusMinor = lookupStatusMinor(statusMinorCode); // from something resembling an enum
let message = container[2];
global.log(`Received StatusChange signal
path: [${path}]
Status Major: [${statusMajorCode} - ${statusMajor}]
Status Minor: [${statusMinorCode} - ${statusMinor}]
Message: [${message}]`
);
}
打开和关闭与以前相同的连接时产生的日志:
// Connect:
Cjs-Message: 18:19:03.117: JS LOG: [LookingGlass/info] Received StatusChange signal
path: [/net/openvpn/v3/sessions/052850e7s915fs483esb3e7s3afb389a2e49]
Status Major: [2 - CONNECTION]
Status Minor: [2 - CFG_OK]
Message: [config_path=/net/openvpn/v3/configuration/9dd3fa9cxb6e0x48acxaa1ex566312bea232]
Cjs-Message: 18:19:03.638: JS LOG: [LookingGlass/info] Received StatusChange signal
path: [/net/openvpn/v3/sessions/052850e7s915fs483esb3e7s3afb389a2e49]
Status Major: [2 - CONNECTION]
Status Minor: [2 - CFG_OK]
Message: [config_path=/net/openvpn/v3/configuration/9dd3fa9cxb6e0x48acxaa1ex566312bea232]
Cjs-Message: 18:19:03.639: JS LOG: [LookingGlass/info] Received StatusChange signal
path: [/net/openvpn/v3/sessions/052850e7s915fs483esb3e7s3afb389a2e49]
Status Major: [2 - CONNECTION]
Status Minor: [6 - CONN_CONNECTING]
Message: []
Cjs-Message: 18:19:03.735: JS LOG: [LookingGlass/info] Received StatusChange signal
path: [/net/openvpn/v3/sessions/052850e7s915fs483esb3e7s3afb389a2e49]
Status Major: [2 - CONNECTION]
Status Minor: [6 - CONN_CONNECTING]
Message: []
Cjs-Message: 18:19:03.974: JS LOG: [LookingGlass/info] Received StatusChange signal
path: [/net/openvpn/v3/sessions/052850e7s915fs483esb3e7s3afb389a2e49]
Status Major: [2 - CONNECTION]
Status Minor: [7 - CONN_CONNECTED]
Message: []
// disconnect:
<nada>
我注意到的一种模式是,我收到的所有信号在 null destination
输出中都有一个 dbus-monitor
:
... sender=:1.891 -> destination=(null destination) ...
虽然我没有收到的信号有一个特定的目的地:
... sender=:1.891 -> destination=:1.892 ...
据推测,这些是针对特定接收者的直接信号,而不是向所有感兴趣的订阅者广播的信号,但我没有在文档中的任何地方找到对此的解释。
那么问题是,为什么我会收到一些信号而不是全部?这是设计使然,还是 Gio
的问题,或者(更有可能)我使用它的方式的问题?
解决方法
经过深入研究后,似乎这种行为是设计使然 - 携带目标值的信号被视为单播消息。预定收件人以外的订阅者只有在配置为 eavesdrop
时才会收到此类消息。大概 dbus-monitor
就是这种情况。
今天关于已插入 SQL Server 数据但客户端未收到响应和sql server加载数据库的介绍到此结束,谢谢您的阅读,有关grpc 客户端未收到服务器流数据、IIS SOAP Web 服务 - 客户端未收到响应、Netty websocket开发,发送消息客户端未收到、OpenVPN v3 Dbus 客户端未收到所有信号等更多相关知识的信息可以在本站进行查询。
本文标签: