BW處理鏈日志存儲分析與清理

處理鏈日志存儲分析

使用程序?RSPC_LOGS_ANALYZE 分析處理鏈日志占用空間

*&---------------------------------------------------------------------*
*& Report RSPC_LOGS_ANALYZE
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT rspc_logs_analyze.TYPES: BEGIN OF ts_count,chain_id  TYPE rspc_chain,streaming TYPE rspc_streaming,headcount TYPE i,bodycount TYPE i,kilobyte  TYPE i,END OF ts_count.
DATA: lt_count TYPE TABLE OF ts_count.
SELECT chain_id, MAX( streaming ) AS streaming, COUNT( * ) AS headcountFROM rspclogchain INTO CORRESPONDING FIELDS OF TABLE @lt_countGROUP BY chain_id. "#EC CI_NOWHERE
DATA: l_sum TYPE i.
LOOP AT lt_count ASSIGNING FIELD-SYMBOL(<ls_count>).SELECT COUNT( * ) FROM rspcprocesslog AS body JOIN rspclogchain AS headON body~log_id = head~log_idINTO <ls_count>-bodycountWHERE head~chain_id = <ls_count>-chain_id.<ls_count>-kilobyte = ( <ls_count>-headcount * 257 + <ls_count>-bodycount * 395 ) / 1024.ADD <ls_count>-kilobyte TO l_sum.
ENDLOOP.
l_sum = l_sum / 1024.
WRITE: l_sum, 'Megabyte'(005).
write /.
SORT lt_count BY kilobyte DESCENDING.
WRITE AT 01 'Process Chain'(001).
WRITE AT 29 'Kilobyte'(002).
WRITE AT 45 'Number of Logs'(003).
LOOP AT lt_count ASSIGNING <ls_count>.WRITE: / <ls_count>-chain_id, <ls_count>-kilobyte, <ls_count>-headcount.IF NOT <ls_count>-streaming IS INITIAL.WRITE: 'Streaming-Chain'(004).ENDIF.
ENDLOOP.

處理鏈日志清理

使用程序?RSPC_LOG_DELETE 進行處理鏈日志清理

*&---------------------------------------------------------------------*
*& Report  RSPC_LOG_DELETE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*REPORT  rspc_log_delete.PARAMETERS: p_chain TYPE rspc_chain.
PARAMETERS: p_logid TYPE rspc_logid.
PARAMETERS: p_force TYPE rs_bool AS CHECKBOX.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_time TYPE rs_bool RADIOBUTTON GROUP radi.
SELECTION-SCREEN COMMENT 5(20) g_timtx FOR FIELD p_time.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF BLOCK g_date WITH FRAME TITLE TEXT-001.
PARAMETERS: p_from TYPE sydatum,p_to   TYPE sydatum.
SELECTION-SCREEN END OF BLOCK g_date.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_last TYPE rs_bool RADIOBUTTON GROUP radi.
SELECTION-SCREEN COMMENT 5(30) g_lastx FOR FIELD p_last.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF BLOCK g_keep WITH FRAME TITLE g_keeptx.
PARAMETERS: p_keep TYPE rspc_logs.
SELECTION-SCREEN END OF BLOCK g_keep.
SELECTION-SCREEN SKIP.
PARAMETERS: p_all TYPE rs_bool NO-DISPLAY.START-OF-SELECTION.IF p_time = 'X'.
* ---- Select fixed time ----DATA: l_r_where TYPE REF TO cl_rs_where,l_t_logs  TYPE TABLE OF rspclogchain,l_s_logs  TYPE rspclogchain,l_msg     TYPE char255,l_datum   TYPE sydatum,l_zeit    TYPE syuzeit.CREATE OBJECT l_r_where.IF NOT p_chain IS INITIAL.DATA: l_operator TYPE c LENGTH 4.IF p_chain CA '*'.REPLACE ALL OCCURRENCES OF '*' IN p_chain WITH '%'.REPLACE ALL OCCURRENCES OF '_' IN p_chain WITH '#_'.REPLACE ALL OCCURRENCES OF '?' IN p_chain WITH '_'.l_operator = 'LIKE'.ELSE.l_operator = 'EQ'.ENDIF.CALL METHOD l_r_where->add_fieldEXPORTINGi_fieldnm               = 'CHAIN_ID'i_operator              = l_operatori_intlen                = 25i_datatp                = 'C'i_init_field_with_value = 'X'i_value                 = p_chain.IF p_chain CS '#_'.APPEND 'ESCAPE ''#''' TO l_r_where->n_t_where.ENDIF.ENDIF.IF NOT p_from IS INITIAL.IF NOT l_r_where->n_t_where[] IS INITIAL.CALL METHOD l_r_where->add_and.ENDIF.IF p_to IS INITIAL.CALL METHOD l_r_where->add_fieldEXPORTINGi_fieldnm               = 'DATUM'i_operator              = 'EQ'i_intlen                = 8i_datatp                = 'D'i_init_field_with_value = 'X'i_value                 = p_from.ELSE.CALL METHOD l_r_where->add_fieldEXPORTINGi_fieldnm               = 'DATUM'i_operator              = 'GE'i_intlen                = 8i_datatp                = 'D'i_init_field_with_value = 'X'i_value                 = p_from.ENDIF.ENDIF.IF NOT p_to IS INITIAL.IF NOT l_r_where->n_t_where[] IS INITIAL.CALL METHOD l_r_where->add_and.ENDIF.CALL METHOD l_r_where->add_fieldEXPORTINGi_fieldnm               = 'DATUM'i_operator              = 'LE'i_intlen                = 8i_datatp                = 'D'i_init_field_with_value = 'X'i_value                 = p_to.ENDIF.IF NOT p_logid IS INITIAL.IF NOT l_r_where->n_t_where[] IS INITIAL.CALL METHOD l_r_where->add_and.ENDIF.CALL METHOD l_r_where->add_fieldEXPORTINGi_fieldnm               = 'LOG_ID'i_operator              = 'EQ'i_intlen                = 25i_datatp                = 'C'i_init_field_with_value = 'X'i_value                 = p_logid.ENDIF.SELECT * FROM rspclogchain INTO TABLE l_t_logsWHERE (l_r_where->n_t_where).ELSEIF p_last = 'X'.
* ---- Last n logs ----IF NOT p_keep IS INITIAL.IF NOT p_logid IS INITIAL.SELECT SINGLE datum, zeit FROM rspclogchain INTO @DATA(ls_start)WHERE log_id = @p_logid.ELSE.CALL FUNCTION 'RSSM_GET_TIME'IMPORTINGe_datum_utc = ls_start-datume_uzeit_utc = ls_start-zeitEXCEPTIONSfailed      = 0OTHERS      = 0.ENDIF.IF NOT p_to IS INITIAL.ls_start-datum = p_to.ENDIF.DATA: lt_chain TYPE TABLE OF rspc_chain.IF NOT p_chain IS INITIAL.IF p_chain CS '*'.REPLACE ALL OCCURRENCES OF '*' IN p_chain WITH '%'.REPLACE ALL OCCURRENCES OF '_' IN p_chain WITH '#_'.REPLACE ALL OCCURRENCES OF '?' IN p_chain WITH '_'.SELECT DISTINCT chain_id FROM rspcchainattr INTO TABLE lt_chainWHERE chain_id LIKE p_chain ESCAPE '#'.ELSE.APPEND p_chain TO lt_chain.ENDIF.ELSE.SELECT DISTINCT chain_id FROM rspclogchain INTO TABLE lt_chain. "#EC CI_NOWHEREENDIF.LOOP AT lt_chain INTO DATA(l_chain).SELECT datum, zeit FROM rspclogchainWHERE chain_id = @l_chainAND  ( ( datum LE @ls_start-datum )OR     ( datum EQ @ls_start-datum AND zeit LE @ls_start-zeit ) )ORDER BY datum DESCENDING, zeit DESCENDINGINTO TABLE @DATA(lt_date)UP TO @p_keep ROWS.DESCRIBE TABLE lt_date LINES DATA(l_lines).CHECK l_lines = p_keep.READ TABLE lt_date INTO DATA(ls_date) INDEX l_lines.SELECT log_id, datum, zeit FROM rspclogchain APPENDING CORRESPONDING FIELDS OF TABLE @l_t_logsWHERE chain_id = @l_chainAND  ( ( datum LT @ls_date-datum )OR     ( datum EQ @ls_date-datum AND zeit LT @ls_date-zeit ) ).ENDLOOP.ELSE.MESSAGE i666(rspc) WITH 'Enter a number'(005) DISPLAY LIKE 'E'.EXIT.ENDIF.ENDIF.IF l_t_logs[] IS INITIAL.MESSAGE e027(rspc) INTO l_msg.DATA: i_gui TYPE c.CALL FUNCTION 'RSSM_RFC_IS_GUI_ON'IMPORTINGon = i_gui.IF i_gui = 'Y'.WRITE / l_msg.ENDIF.ENDIF.
* ==== Delete ====IF p_all IS INITIAL.
* ---- get last log ----DATA: l_date  TYPE sydatum,l_time  TYPE syuzeit,l_logid TYPE rspc_logid.SELECT MAX( datum ) FROM  rspclogchain INTO l_dateWHERE chain_id    = p_chainAND   synchronous = space.SELECT MAX( zeit )  FROM  rspclogchain INTO l_timeWHERE chain_id    = p_chainAND   datum       = l_dateAND   synchronous = space.SELECT SINGLE log_id FROM  rspclogchain INTO l_logidWHERE chain_id    = p_chainAND   datum       = l_dateAND   zeit        = l_timeAND   synchronous = space.DELETE l_t_logs WHERE log_id = l_logid. " always keep the last log!ENDIF.SORT l_t_logs BY datum ASCENDING zeit ASCENDING.LOOP AT l_t_logs INTO l_s_logs.CALL FUNCTION 'RSPC_LOG_DELETE'EXPORTINGi_logid      = l_s_logs-log_idi_force      = p_forceEXCEPTIONSfailed       = 1no_authority = 2OTHERS       = 3.IF sy-subrc = 2.IF i_gui = 'Y'.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4INTO l_msg.WRITE / l_msg.ELSE.MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.ELSEIF sy-subrc <> 0.IF p_force = 'X'.IF i_gui = 'Y'.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4INTO l_msg.WRITE / l_msg.ELSE.MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.ELSE.ROLLBACK WORK.IF i_gui = 'Y'.MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4INTO l_msg.WRITE / l_msg.ELSE.MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgnoWITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.ENDIF.ENDIF.ELSE.CALL FUNCTION 'RSSM_GET_TIME'EXPORTINGi_datum_utc = l_s_logs-datumi_uzeit_utc = l_s_logs-zeitIMPORTINGe_datum_loc = l_datume_uzeit_loc = l_zeitEXCEPTIONSfailed      = 1OTHERS      = 2.IF sy-subrc <> 0.l_datum = l_s_logs-datum.l_zeit  = l_s_logs-zeit.ENDIF.IF i_gui = 'Y'.MESSAGE s129(rspc) WITH l_s_logs-log_id l_datum l_zeit INTO l_msg.WRITE / l_msg.ELSE.MESSAGE s129(rspc) WITH l_s_logs-log_id l_datum l_zeit.ENDIF.ENDIF.ENDLOOP.
INITIALIZATION.g_keeptx = 'Log Number Selection'(002).g_timtx = 'Fixed Date'(003).g_lastx = 'Keep number of logs'(004).

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/92817.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/92817.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/92817.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql 簡單操作手冊

以下是一份 MySQL 日常操作速查手冊&#xff0c;包含啟動/停止服務、連接/退出客戶端、數據庫管理、用戶權限等常用命令&#xff0c;適用于 macOS&#xff08;Homebrew 安裝&#xff09;和 Linux 系統&#xff1a;一、服務管理 &#x1f6a6;操作命令&#xff08;Homebrew&…

HTML5 Web Workers 深度剖析:助力網頁性能飛速提升

在當今數字化時代&#xff0c;Web 應用的性能已成為決定用戶體驗和業務成功的關鍵因素。隨著 Web 應用的復雜性不斷增加&#xff0c;如何高效利用設備資源、提升網頁響應速度成為開發者面臨的重大挑戰。 HTML5 Web Workers 的誕生與意義 在傳統的網頁開發中&#xff0c;JavaScr…

調度系統部署架構是什么樣的呢?

簡單示例一個部署架構圖&#xff0c;如下所示&#xff1a;&#x1f4d8; 各組件說明&#xff1a;? 服務器端組件&#xff08;控制節點&#xff09;Slurm&#xff1a;slurmctld&#xff08;主控調度器&#xff09;&#xff0c;slurmdbd&#xff08;數據庫服務&#xff09;PBS P…

SQL 與 NoSQL 的核心區別

數據庫是存儲、管理和檢索數據的系統。根據數據模型和設計理念&#xff0c;可分為SQL 數據庫&#xff08;關系型數據庫&#xff09; 和NoSQL 數據庫&#xff08;非關系型數據庫&#xff09;。兩者的核心區別在于數據的組織方式、靈活性、事務支持和適用場景。&#x1f4a1;一、…

力扣 hot100 Day71

45. 跳躍游戲 II 給定一個長度為 n 的 0 索引整數數組 nums。初始位置為 nums[0]。 每個元素 nums[i] 表示從索引 i 向后跳轉的最大長度。換句話說&#xff0c;如果你在索引 i 處&#xff0c;你可以跳轉到任意 (i j) 處&#xff1a; 0 < j < nums[i] 且i j < n …

什么是 Spring MVC?

題目詳細答案Spring MVC 是 Spring 框架中的一個模塊&#xff0c;用于構建基于 Web 的應用程序。它遵循 Model-View-Controller#&#xff08;MVC&#xff09;設計模式&#xff0c;將業務邏輯、用戶界面和數據分離&#xff0c;以促進代碼的可維護性和可擴展性。主要包含幾個概念…

第十篇:3D模型性能優化:從入門到實踐

第十篇&#xff1a;3D模型性能優化&#xff1a;從入門到實踐 引言 在3D開發中&#xff0c;性能優化是區分普通應用和卓越應用的關鍵。Three.js應用的流暢運行需要60FPS的渲染效率&#xff0c;而移動端設備更面臨嚴格的資源限制。本文將深入解析性能優化核心技術&#xff0c;并通…

基于 Easy Rules 的電商訂單智能決策系統:構建可擴展的業務規則引擎實踐

Easy Rules 是一個輕量級且易于使用的規則引擎&#xff0c;適用于Java應用。下面是一個簡單的示例&#xff0c;演示如何使用 Easy Rules 定義和執行規則。 添加依賴 首先&#xff0c;在你的Java項目中添加 Easy Rules 的 Maven 依賴&#xff08;如果你使用的是Maven構建工具&am…

如何使用gpt進行模型微調?

對 GPT 類大語言模型&#xff08;如 GPT-3、GPT-2、Hugging Face 的 GPT 系列、ChatGLM 等開源或閉源模型&#xff09;進行微調&#xff08;Fine-tuning&#xff09;&#xff0c;目的是讓模型在特定任務或領域&#xff08;如法律、醫療、客服、代碼生成等&#xff09;上表現更優…

數據可視化與人機交互技術

人機交互技術(HumanComputer Interaction&#xff0c;HCI)是21世紀信息領域需要發展的重大課題。例如&#xff0c;美國21世紀信息技術計劃中的基礎研究內容定為四項&#xff0c;即軟件、人機交互、網絡、高性能計算。其目標就是要開發21世紀個性化的信息環境。其中&#xff0…

MP2662GC-0000-Z降壓轉換器 MPS電源芯片 集成電路IC

MP2662GC-0000-Z 是MPS&#xff08;Monolithic Power Systems&#xff09;公司推出的一款高性能電源管理集成電路&#xff08;PMIC&#xff09;&#xff0c;屬于其電池管理或電源轉換產品線的一部分。以下是關于該器件的詳細解析&#xff1a;1. 核心功能高效電源轉換&#xff1…

Go 語言中的切片排序:從原理到實踐玩轉 sort 包

?? Go 語言中的切片排序:從原理到實踐玩轉 sort 包 在Go語言的日常開發中,切片(Slice)作為動態、靈活的數據結構,幾乎無處不在。而排序作為數據處理的基礎操作,更是高頻需求。 Go標準庫中的sort包憑借其優雅的設計和高效的實現,成為切片排序的“瑞士軍刀”。本文將帶…

PCB焊盤脫落的補救辦法與獵板制造優勢解析

PCB焊盤脫落是電子維修中常見的問題&#xff0c;輕則導致元件虛焊&#xff0c;重則引發電路板報廢。遇到這種情況不必慌張&#xff0c;掌握正確的補救方法能最大限度挽回損失。一、焊盤脫落的應急處理方案若脫落焊盤未完全脫離基板&#xff0c;可用鑷子夾住殘留部分緩慢抬起&am…

python3.10.6+flask+sqlite開發一個越南留學中國網站的流程與文件組織結構說明

采用python3.10.6flasksqlite技術棧&#xff0c;開發一個越南留學中國網站&#xff08;vietnam-study-in-china&#xff09;。開發流程與文件組織結構說明 一、項目概述與規劃 &#xff08;一&#xff09;項目背景與意義 留學趨勢分析 近年來&#xff0c;中越兩國教育交流日益…

uView Pro 正式開源!70+ Vue3 組件重構完成,uni-app 組件庫新晉之星

一、項目背景 uni-app 作為一款優秀的跨平臺框架&#xff0c;憑借其“一套代碼&#xff0c;多端運行”的理念&#xff0c;受到了廣大移動端開發者的青睞。 而在 uni-app 的生態中&#xff0c;uView UI 作為一款基于 Vue2 開發的開源組件庫&#xff0c;憑借其豐富的組件、完善…

Qwen3 技術報告 的 Strong-to-Weak Distillation 強到弱蒸餾 和 代碼實現

Qwen3 技術報告 的 Strong-to-Weak Distillation 強到弱蒸餾 和 代碼實現 flyfish 代碼在文末 技術報告就是不一定經過嚴格的學術期刊同行評審&#xff0c;但具有較強的專業性和實用性。 The post-training pipeline of Qwen3 is strategically designed with two core ob…

一體化步進伺服電機在無人機艙門應用中的應用案例

在無人機的設計過程中&#xff0c;艙門的快速、穩定開合對于無人機的任務執行效率和安全性至關重要。傳統的艙門驅動方式存在響應速度慢、控制精度不足等問題&#xff0c;難以滿足無人機復雜任務的需求。因此&#xff0c;某客戶無人機選擇了?一體化步進伺服電機?作為艙門的驅…

Ansible 面試題 20250811

1. 你使用過哪些 Ansible 模塊? Ansible 常用的模塊: file 、copy 、template 、yum 、apt 、service 、user 、group 、shell 、script 、command 、cron 等等。 這些模塊可以用來管理文件、軟件包、服務、用戶、組、計劃任務等等。 Docker相關模塊: docker_container:用…

安路Anlogic FPGA下載器的驅動安裝與測試教程

參考鏈接&#xff1a;安路下載器JTAG驅動安裝 - 米聯客(milianke) - 博客園 安路支持幾款下載器&#xff1a; AL-LINK在線下載器是基于上海安路信息科技股份科技有限公司全系列 CPLD/FPGA 器件&#xff0c;結合公司自研的 TD 軟件&#xff0c;可實現在線 JTAG 程序下載、Chip…

基于深度學習的股票分析和預測系統

摘要 【關鍵詞】 第一章 緒論 1.1 研究背景及意義 1.2 國內外文獻綜述 1.2.1 國外研究結果 1.2.2 國內研究結果 1.3 本課題主要工作 第二章 相關工作介紹 2.1文本量化方法 2.2 CNN、LSTM模型 2.3評測準確率及收益率 第三章 開發技術介紹 3.1 系統開發平臺 3.2平臺…