[-70028]:Create SOCKET connection failure.问题处理

[dmdba@dm2 ~]$ disql sysdba/sysdba@rac
[-70028]:Create SOCKET connection failure.
disql V8
username:

检查,服务都正常

[root@dm1 ~]# systemctl |grep Dm
DmAPService.service                                                                                                                                     loaded active running   Dameng Assistant Plug-In Service(DmAPService).
DmASMSvrServicedm1.service                                                                                                                              loaded active running   Dameng ASM Server Service(DmASMSvrServicedm1).
DmCSSMonitorServicedm1.service                                                                                                                          loaded active running   Dameng CSS Monitor Service(DmCSSMonitorServicedm1).
DmCSSServicedm1.service                                                                                                                                 loaded active running   Dameng CSS Service(DmCSSServicedm1).
DmServicedsc.service                                                                                                                                    loaded active running   Dameng Database Service(DmServicedsc).

解决方法:重启DmAPService.service

 

[root@dm1 ~]# systemctl restart DmAPService.service
[root@dm1 ~]# systemctl |grep Dm
DmAPService.service                                                                                                                                     loaded active running   Dameng Assistant Plug-In Service(DmAPService).
DmASMSvrServicedm1.service                                                                                                                              loaded active running   Dameng ASM Server Service(DmASMSvrServicedm1).
DmCSSMonitorServicedm1.service                                                                                                                          loaded active running   Dameng CSS Monitor Service(DmCSSMonitorServicedm1).
DmCSSServicedm1.service                                                                                                                                 loaded active running   Dameng CSS Service(DmCSSServicedm1).
DmServicedsc.service                                                                                                                                    loaded active running   Dameng Database Service(DmServicedsc).

[root@dm2 ~]# systemctl restart DmAPService.service
[root@dm2 ~]# systemctl |grep Dm
DmAPService.service                                                                                                                                     loaded active running   Dameng Assistant Plug-In Service(DmAPService).
DmASMSvrServicedm2.service                                                                                                                              loaded active running   Dameng ASM Server Service(DmASMSvrServicedm2).
DmCSSServicedm2.service                                                                                                                                 loaded active running   Dameng CSS Service(DmCSSServicedm2).
DmServicedsc.service                                                                                                                                    loaded active running   Dameng Database Service(DmServicedsc).
[root@dm2 ~]# 

测试

[dmdba@dm2 ~]$ disql sysdba/sysdba@rac
[-2501]:Invalid username or password.
disql V8
username:SYSDBA
password:

Server[LOCALHOST:5236]:mode is normal, state is open
login used time: 6.591(ms)
SQL> 
SQL> 
SQL> 
SQL>  select instance_name from v$instance;

LINEID     INSTANCE_NAME
---------- -------------
1          DSC1

used time: 3.867(ms). Execute id is 2.
SQL> 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的C语言网络编程使用epoll实现通过网卡1(IP: 192.168.1.1)的指定端口(12345),转发到另一个网卡(IP: 192.168.2.1)下的多个客户端的示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <sys/socket.h> #include <sys/epoll.h> #define MAX_EVENTS 10 #define BUFFER_SIZE 1024 int main() { int server_fd, client_fd, epoll_fd; struct sockaddr_in server_addr, client_addr; struct epoll_event event, events[MAX_EVENTS]; char buffer[BUFFER_SIZE]; // 创建服务器端套接字 server_fd = socket(AF_INET, SOCK_STREAM, 0); if (server_fd == -1) { perror("Failed to create socket"); exit(EXIT_FAILURE); } // 设置服务器端地址 memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = inet_addr("192.168.1.1"); server_addr.sin_port = htons(12345); // 绑定服务器端套接字到指定地址和端口 if (bind(server_fd, (struct sockaddr*)&server_addr, sizeof(server_addr)) == -1) { perror("Failed to bind"); exit(EXIT_FAILURE); } // 监听连接请求 if (listen(server_fd, SOMAXCONN) == -1) { perror("Failed to listen"); exit(EXIT_FAILURE); } // 创建epoll实例 epoll_fd = epoll_create1(0); if (epoll_fd == -1) { perror("Failed to create epoll"); exit(EXIT_FAILURE); } // 将服务器端套接字添加到epoll实例中 event.events = EPOLLIN; event.data.fd = server_fd; if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, server_fd, &event) == -1) { perror("Failed to add server socket to epoll"); exit(EXIT_FAILURE); } while (1) { int num_events = epoll_wait(epoll_fd, events, MAX_EVENTS, -1); if (num_events == -1) { perror("epoll_wait failed"); exit(EXIT_FAILURE); } for (int i = 0; i < num_events; i++) { if (events[i].data.fd == server_fd) { // 有新的连接请求 socklen_t client_addr_len = sizeof(client_addr); client_fd = accept(server_fd, (struct sockaddr*)&client_addr, &client_addr_len); if (client_fd == -1) { perror("Failed to accept connection"); exit(EXIT_FAILURE); } // 设置客户端套接字为非阻塞模式 int flags = fcntl(client_fd, F_GETFL, 0); fcntl(client_fd, F_SETFL, flags | O_NONBLOCK); // 将客户端套接字添加到epoll实例中 event.events = EPOLLIN | EPOLLET; event.data.fd = client_fd; if (epoll_ctl(epoll_fd, EPOLL_CTL_ADD, client_fd, &event) == -1) { perror("Failed to add client socket to epoll"); exit(EXIT_FAILURE); } } else { // 客户端套接字上有数据可读 int n = 0; while ((n = read(events[i].data.fd, buffer, BUFFER_SIZE)) > 0) { // 将数据转发到另一个网卡下的多个客户端 // 例如,将数据发送到客户端1(192.168.2.10,端口:2000) struct sockaddr_in client1_addr; memset(&client1_addr, 0, sizeof(client1_addr)); client1_addr.sin_family = AF_INET; client1_addr.sin_addr.s_addr = inet_addr("192.168.2.10"); client1_addr.sin_port = htons(2000); sendto(events[i].data.fd, buffer, n, 0, (struct sockaddr*)&client1_addr, sizeof(client1_addr)); // 将数据发送到客户端2(192.168.2.20,端口:2001) struct sockaddr_in client2_addr; memset(&client2_addr, 0, sizeof(client2_addr)); client2_addr.sin_family = AF_INET; client2_addr.sin_addr.s_addr = inet_addr("192.168.2.20"); client2_addr.sin_port = htons(2001); sendto(events[i].data.fd, buffer, n, 0, (struct sockaddr*)&client2_addr, sizeof(client2_addr)); } if (n == 0) { // 连接已关闭 close(events[i].data.fd); } } } } close(server_fd); close(epoll_fd); return 0; } ``` 请注意,以上代码仅是一个简单的示例,实际情况可能需要根据具体需求进行更复杂的逻辑处理和错误处理。网络编程涉及到众多细节,确保你对网络编程的基本知识有一定的了解,并参考相关文档和示例代码进行开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值