PostgreSQL server端接收連線後fork程式
main->PostmasterMain->ServerLoop: for(;;){ ... //會阻塞在這,監視檔案描述符的變化 selres = select(nSockets, &rmask, NULL, NULL, &timeout); if (selres > 0){ for (i = 0; i < MAXLISTEN; i++){ //找一個有效的fd if (ListenSocket[i] == PGINVALID_SOCKET) break; if (FD_ISSET(ListenSocket[i], &rmask)){ port = ConnCreate(ListenSocket[i]);->StreamConnection->accept BackendStartup(port);//fork程式 |-- pid = fork_process(); | if (pid == 0){//child | InitPostmasterChild(); | ClosePostmasterPorts(false); | BackendInitialize(port); | //該函式不會返回 | BackendRun(port);->PostgresMain: | |-- for (;;){ | | if (send_ready_for_query){ | | ... | | ReadyForQuery(whereToSendOutput);->pq_flush();->internal_flush->secure_write->secure_raw_write->send | | send_ready_for_query = false; | | } | | firstchar = ReadCommand(&input_message); | | switch(firstchar):{ | | case 'Q':exec_simple_query(query_string); | | ... | | } | |-- } | } | ...father |-- return STATUS_OK //關閉father socket StreamClose(port->sock); ConnFree(port); } } } }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31493717/viewspace-2212832/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PostgreSQL15開啟遠端連線SQL
- 允許本地Sql Server 遠端連線SQLServer
- 配置SQL server遠端連線(區域網)SQLServer
- Libevent應用 (五) 連線監聽器,接收tcp連線TCP
- 用nginx做grpc反向代理,nginx到後端server不能維持長連線問題NginxRPC後端Server
- telnet連線socket serverServer
- 前端接收後端返回的map前端後端
- python 怎麼連線 sql server,不是連線 mysqlPythonServerMySql
- vnc遠端連線黑屏,vnc連線Linux後黑屏的處理辦法VNCLinux
- PostgreSQL 連線 超時異常SQL
- Rust 連線 PostgreSQL 資料庫RustSQL資料庫
- 如何遠端連線 遠端桌面軟體連線
- vps如何遠端連線,遠端桌面連線vps
- NavicatPremium 連線SQL Server 、MySQL等REMServerMySql
- GTM 在每個後端程式(backend process 是PostgreSQL 術語後端SQL
- 進行遠端連線一個 appium server 時報 not map to a valid resourceAPPServer
- 雲伺服器SQL Server 2008 允許遠端連線的配置伺服器SQLServer
- git fork後如何更新Git
- Oracle透過ODBC連線SQL Server資料庫後ORA-12514OracleSQLServer資料庫
- 怎麼連線遠端桌面 批次管理程式
- 如何遠端連線 桌面設定遠端桌面連線
- 全民學後端快餐教程(2)-連線資料庫後端資料庫
- PostgreSQL DBA(155) - Develop(“大表”連線)SQLdev
- EF Core連線PostgreSQL資料庫SQL資料庫
- postgresql連線失敗如何處理SQL
- PostgreSQL的idle in transaction連線狀態SQL
- 雲服務預設Sql server和Mysql遠端連線埠是多少?ServerMySql
- Git客戶端:Fork for MacGit客戶端Mac
- SQL Server如何判斷哪些會話/連線是長連線?SQLServer會話
- Microsoft SQL Server 遷移利器,Babelfish for Aurora PostgreSQL 上線!ROSSQLServerBabel
- Windows 下 Laravel 7.0 連線 sql serverWindowsLaravelSQLServer
- VNC遠端連線,如何VNC遠端連線伺服器VNC伺服器
- 使用Python程式碼遠端連線伺服器Python伺服器
- 遠端連線錯誤程式碼及處理
- 遠端桌面問題,連線後馬上斷開,並顯示“遠端計算機已結束連線”計算機
- fork、父程式和子程式
- PostgreSQL資料庫連線保持設定SQL資料庫
- SQL server 遠端連線問題之08S01 -TCP Provider:遠端伺服器強迫關閉了一個現有的連線SQLServerTCPIDE伺服器