執行程式為什麼老是顯示Compiling...
經理問,為什麼開發的同事反映執行報表時老是顯示Comiling...
開發同事仔細檢查,發現許多程式執行時都顯示Comiling...
問題找到我Basis這邊,原因是這是一個剛升級的系統,還沒有transport all the requests,所以沒有執行SGEN而已
至於SGEN是做什麼的?因為SAP啟動後,系統會將沒有用過的程式和物件都做compile,這是正常的ABAP系統的行為,而SGEN可以強行generate ABAP程式,詳細看下面的幫助,當然我們可以先做一次SGEN,到所有的程式都傳輸過來了,再做一次
[@more@]Information About the SAP Load Generator (SGEN)
Overview
You can use transaction SGEN to generate the ABAP loads of a number of programs, function groups, classes, and so on, as well as Business Server Page applications (BSP applications).
Before the generation is started, consecutive screens give you options regarding:
- Task of the generation
- Selection of generation set (= number of objects to be generated)
- Use of servers for parallel generation
The generation is started on the Job Monitor screen. In addition, this screen gives you information about generation jobs that may have already run or are current such as, for example, predictions regarding the duration of the generation.
Note: If you want to regenerate loads, make sure that there is enough space available in the database. The space required can be several hundred MB. Generation over all components requires around 2 GB of free space.
Procedure
1. Select Task of the Generation.
On the initial screen of transaction SGEN you can select the task that suits the purpose of the generation:
- Generate all Objects of Selected Software Components
- Choose this strategy if you want to generate the loads of all objects of
certain software components. This may be the case, for example, if your system
has been reinstalled. Here, the loads that are required for operation are not
yet available and must be regenerated.
- After selecting this task, the Selection by software components of
generation set screen appears. Here you are able to restrict the amount of
objects to be generated by selecting software components. Use the pushbutton to
select the software components you require.
- Regenerate After an SAP System Upgrade
- After an upgrade, you have to regenerate the load of the ABAP objects in the
system. Here, the following are required:
- The runtime of the generation process in transaction SGEN must be as short as possible.
- The storage space required by the ABAP loads in the database must not be too large.
- The generation effort on the part of the user must be as small as possible.
- The following generation set takes the above requirements into account. It
consists of all objects with loads, which were available in your system before
the upgrade (that is, objects that you already used before the upgrade), and all
objects that were redelivered in the release interval between start release and
target release of your upgrade. The names of the objects that were generated
before the upgrade were stored in the REPLIST file in the current directory of
your system during the upgrade (profile parameter DIR_HOME).
- After selecting this task, the Selection by software components of
generation set screen appears. In the standard setting, all software
components are processed. Here you are able to restrict the amount of objects to
be generated by selecting software components. Use the pushbutton to select the
software components you require.
- Regenerate the Objects of the Last Run
- This task is suitable, for example, in the following cases:
- The generation of objects of the generation set that was used in the previous run was terminated and you want to regenerate the remaining objects.
- You want to regenerate all objects of the generation set that was used in the previous run.
- After selecting this task, the following two options are available to
you:
- Resume
The generation set that was used in the previous run of transaction SGEN is used. Only those objects that were not generated in the previous run or whose generation was terminated due to a system error, are generated.
- Regeneration:
All objects of the generation set used in the previous run of transaction SGEN are generated.
- Regenerate Existing Loads
- This task allows you to regenerate all ABAP loads and invalidated loads that
exist in your system, and to generate loads for objects of a Support Package
queue. The following options are available to you:
- Generate all Objects with Existing Load
- Only Generate Objects with Invalidated Load
- The load of an object becomes invalidated if changes have been made to the
object or to the objects used by this object, since the moment the load was
generated. Examples of such objects are includes and tables. This may occur by
importing a Support Package ( ) or a kernel
patch.
- If you want to generate loads for objects of a Support Package queue, start
the task after importing the queue. The task determines the generation set using
the invalidated loads in the system. In contrast with the Generate objects of
a transport request task, this task also takes into account ABAP loads that
were invalidated by modified Dictionary objects.
- After choosing this task, a screen appears which allows you to search for
the name of the transport request using the selection button, or to specify it
directly.
- Generation of BSP Applications
- This task enables you to generate BSP applications of selected software
components.
- Each Business Server Page is realized technically through an ABAP object
class. When BSP applications are generated, these classes and their ABAP loads
are generated. BSP applications are not included in the generation sets of the
Generate All Objects of Selected Software Components, Regenerate After
an SAP System Upgrade andRegenerate All Existing Loads tasks, since
they are optional. You can use this task to deal with these.
- After selecting this task, the Selection by software components of
generation set screen appears. Here you can restrict the number of BSP
applications to be generated by selecting software components. Use the
pushbuttons to select the software components you require.
- If you quit the generation of BSP applications before it has finished, or if
the system terminates generation, the Regenerate the Objects of the Last
Run task allows you to resume the generation.
2. Select Server for Parallel Generation.
The generation is based on a parallelized method, where the generation set is divided into small subsets that are processed by parallel processes. Depending on resources, available servers are included in the parallel processing, whereby multiple parallel processes run on one server.
From the Selection of Server for Parallel Generation screen, you can select the servers that are to be used in the parallel processing. Note that loads depend on the machine type (MT) of a host. This means that it only makes sense to parallel process the generation set of servers of the same machine type.
The default selection orientates itself by the server to which it is logged on. It corresponds to your logon server and all servers on your system that have the same machine type. If you want to use the default selection, choose Continue.
If you want to exclude individual servers from the generation, or if you want to generate the load for a particular machine type that is different to that of the logon server, then use the pushbutton to select the corresponding servers and choose Continue.
Note: The parallel servers are depicted via the logon groups in transaction RZ12. For transaction SGEN, logon group 'parallel_generators' is created. Do not use this group for your own purposes, as transaction SGEN uses and continually redefines this group.
From the selection of the servers, the system starts to automatically define the generation set, and to store it on the database (DB table ). This may take several minutes.
Job Monitor Pushbutton
This function allows you to call the job process control directly without having to redefine the generation set. By choosing Job Monitor -> Job Overview -> Spool or Job Log , you can display logs from previous generation jobs.
(see also ).
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/167898/viewspace-995749/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式執行緒新解:什麼是程式?什麼是執行緒?執行緒
- 帝國CMS為什麼驗證碼均顯示為“ecms”?
- 程式執行時,一個進度條顯示INCLUDE程式
- 為什麼flexigrid無法顯示資料Flex
- 為什麼applet不能正確的顯示?APP
- 顯示oracle執行時間Oracle
- 為什麼ls-l時,有些檔案顯示日期,有些顯示時間?(轉)
- 為什麼redis是單執行緒的以及為什麼這麼快?Redis執行緒
- qt 使用qmake pro檔案新增 ico圖示,程式執行時顯示圖示,exe也顯示圖示QT
- 為什麼Podman執行容器更安全?
- python為什麼要用執行緒Python執行緒
- 為什麼要使用執行緒池執行緒
- 身為一名程式設計師,為什麼我老是活得比狗還累?程式設計師
- 什麼是程式(執行緒)同步執行緒
- keil在執行程式時,run按紐顯示為灰色行程
- 3個節點的RAC, 為什麼定期優化統計的JOB老是在節點2上執行優化
- 執行緒池管理(1)-為什麼需要執行緒池執行緒
- redis為什麼用單執行緒不用多執行緒Redis執行緒
- history命令顯示,操作執行日期
- 執行Java,不顯示控制檯Java
- Redis為什麼是單執行緒?為什麼有如此高的效能?Redis執行緒
- 為什麼?為什麼StringBuilder是執行緒不安全的?UI執行緒
- Promise為什麼比setTimeout先執行?Promise
- ArrayList 為什麼執行緒不安全執行緒
- linux下面顯示所有正在執行的執行緒Linux執行緒
- ifconfig為什麼沒有顯示對應IP資訊
- 為什麼vue列印的物件在瀏覽器中顯示...Vue物件瀏覽器
- 為什麼建議一個容器中只執行一個程式
- 為什麼這段程式碼輸入一個數之後顯示不了結果
- GC 為什麼要掛起使用者執行緒? 什麼愁什麼怨?GC執行緒
- Win10工作列不顯示應用圖示怎麼辦 應用已經在執行但不顯示Win10
- 為什麼在 Plasma 上難以執行 EVMASM
- python 多執行緒為什麼雞肋?Python執行緒
- Redis單執行緒,為什麼速度快Redis執行緒
- redis是單執行緒的,為什麼這麼快Redis執行緒
- 執行緒與程式之間有什麼關係?Linux執行緒與程式有什麼區別?執行緒Linux
- 為什麼谷歌要執行嚴格的程式碼編寫規範谷歌
- 論程式設計師為什麼下班後只關顯示器從不關電腦?程式設計師