WO2012070081A1 - Computer system, computer system program replacement method, and program replacement processing program - Google Patents
Computer system, computer system program replacement method, and program replacement processing program Download PDFInfo
- Publication number
- WO2012070081A1 WO2012070081A1 PCT/JP2010/006836 JP2010006836W WO2012070081A1 WO 2012070081 A1 WO2012070081 A1 WO 2012070081A1 JP 2010006836 W JP2010006836 W JP 2010006836W WO 2012070081 A1 WO2012070081 A1 WO 2012070081A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- library
- function
- program
- replacement
- processing
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
Definitions
- the present invention relates to a computer system having an application program replacement function in an online system, a computer system program replacement method, and a program replacement processing program.
- the service stop means stopping a request for the corresponding business process.
- the management means manages two names of the business library module (LM) at normal time and the switched business LM and their status on the shared memory of each transaction, and the transaction calls the business LM, the management means is shared
- LM business library module
- the management means manages two names of the business LM at normal time and the business LM after switching and the state thereof on the shared memory of each transaction.
- the business LM can be replaced even when the business LM is being used in a transaction.
- Patent Document 1 when there are a plurality of threads in the business LM, the one disclosed in Patent Document 1 does not have a function for monitoring the state of each thread. Therefore, depending on the state of each thread, the business LM can be switched during execution of a transaction. Disappear.
- the present invention has been made in view of the problems of the prior art described above, and its purpose is to provide a computer system capable of replacing a program even during execution of a transaction using the program, a program replacement method for the computer system, and a program replacement. To provide a processing program.
- the present invention provides a management for managing a processing state of the plurality of processing computers by exchanging information with the plurality of processing computers and the plurality of processing computers via a network.
- Each of the processing computers is in a state of a thread that uses a function call issuing unit that issues a function call and a function call target in the course of executing a program transaction.
- a function call macro control unit for controlling the execution of the transaction, and a replacement control unit for replacing the program with a new program based on a control result of the function call macro control unit.
- the macro control unit when the target of the function call is a replacement target and there is a thread that uses the replacement target, Complete the red process and continue the transaction that uses the replacement target. If there is no thread that uses the replacement target, temporarily suspend the execution of the transaction that uses the replacement target until the replacement of the replacement target is completed. It is characterized by doing.
- a program can be replaced even while a transaction using the program is being executed.
- the function call macro control unit controls the execution of the transaction according to the state of the thread that uses the call target function that is the target of the function call.
- the program can be changed even during the execution of a transaction that uses.
- FIG. 1 is a block diagram showing the overall configuration of a computer system to which the present invention is applied.
- the computer system is a system that operates 24 hours a day, 365 days, and includes computers 101, 121, 131, 141, and the computers 101, 121, 131, 141 are connected to each other via a network 151. Has been.
- the computers 101, 121, and 131 are configured as online system processing computers (processing computers) or application servers (AP servers), and the computer 141 is a load balancing system process that manages the load status of each of the computers 101, 121, and 131. It is configured as a computer (management computer). Since the computers 101, 121, and 131 are configured in the same manner, the following description will be made mainly using the computer 101 as the online system processing computer or application server (AP server).
- AP server application server
- the computer 101 includes a main storage device 102, a CPU (Central Processing Unit) 103, an auxiliary storage device 104, an input device 105 including a keyboard, and an output device 106 including a monitor. Stores an online system 107 and an operating system (OS) 108.
- OS operating system
- the online system 107 is a program that operates according to the operating system 108, and includes a library management unit 109 and a library group 110.
- the library management unit 109 includes a replacement control unit 111, a library information management table 112, and a library execution status notification unit 113, and the library group 110 includes a plurality of libraries 114.
- Each library 114 includes a plurality of functions 115 and a function call macro control unit 116.
- the library is a collection of functions, subroutines, data, etc. used in the application program.
- the CPU 103 functions as a control unit that controls the entire computer 101 by operating the operating system 108 and the online system 107.
- the auxiliary storage device 104 stores user data and various programs.
- the input device 105 outputs information such as a replacement instruction to the replacement control unit 111 in response to a user operation.
- the output device 106 displays the processing result of the CPU 103 and information for the user to input on the screen.
- the computer 141 includes a CPU 142, a main storage device 143, and an auxiliary storage device 144.
- the main storage device 143 stores the load distribution system 145.
- the load distribution system 145 includes an AP (application) server library replacement management unit 146 and an AP server management table 147.
- the CPU 142 performs overall control of the computer 141 and executes control for exchanging information with each computer 101, 121, 131 via the network 151.
- the AP server library replacement management unit 146 takes in information from each of the computers 101, 121, and 131 via the network 151, and manages a library that is a replacement target of the library 114 in each of the computers 101, 121, and 131.
- the AP server management table 147 stores information for managing whether or not the library in each AP server (each computer 101, 121, 131) is a library to be replaced.
- the auxiliary storage device 144 stores information related to the definition file defined by the user using the input device 105.
- FIG. 2 shows a conceptual diagram when the function call of the library to be replaced is put on hold.
- the transaction 211 becomes a plurality of libraries 114, for example, library 114A and library 114D. , Library 114G, and if library 114H to be replaced does not exist among these libraries, transaction 211 is executed even if a function call occurs between the libraries (library 114A, library 114D, library 114G). The transaction 211 can be continued even if the replacement target library 114H is replaced with a new one.
- the transaction 212 includes, for example, a library 114B, a library 114E, a library 114H, and a library 114J as a plurality of libraries 114. If the library 114H to be replaced exists in these libraries, the transaction 212 is changed. If a function call that causes a function belonging to the library 114E to call a function belonging to the library 114H occurs during execution, the function call is put on hold until the replacement of the replacement target library 114H is completed. In this case, the function call is temporarily suspended, but the replacement target library 114H can be replaced with a new one during execution of the transaction 212.
- the transaction 213 includes, for example, a library 114C and a library 114F as a plurality of libraries 114. There is no library 114H to be replaced among these libraries, but among the functions belonging to the library 114F, If there is a function that calls a function belonging to the library 114H to be replaced, and a function call that calls a function belonging to the library 114H to be replaced occurs during execution of the transaction 213, the function call This is temporarily suspended until the replacement of the replacement target library 114H is completed. In this case, the function call is temporarily suspended, but the replacement target library 114H can be replaced with a new one during the execution of the transaction 213.
- the transaction 214 includes, for example, a library 114C, a library 114F, and a library 114I as a plurality of libraries 114.
- these libraries there is no library 114H to be replaced, and each library (library) 114C, library 114F, library 114I), when there is no function that calls a function belonging to the library 114H to be replaced, each library (library 114C, library 114F, library 114I) is being executed during the transaction 214.
- the transaction 214 can be continued even if a function call occurs between them, and the transaction 214 is continued even if the replacement target library 114H is replaced with a new one. Rukoto can.
- Fig. 3 shows the structure of the definition file.
- the definition file 131 includes information input by the user using the input device 105, for example.
- the library name is defined as the library A
- the function names are defined as the function A1 and the function A2.
- the library B corresponding to the library 114 is composed of the function B1 and the function B2
- the library name is defined as the library B
- the function names are defined as the function B1 and the function B2, respectively.
- FIG. 4 shows the configuration of the library management table.
- a library management table 112 is a table for managing the library 114, and includes a library name 401, a replacement instruction flag 402, a call count counter 403, and a function name 404. It consists of a thread number 405 and the number of calls 406.
- “Library-_A” is stored as information related to the name of the library 114, for example, in the case of the library A corresponding to the library 114.
- “ON” is stored as information of the replacement instruction flag 402 when the library 114 is a replacement target
- “OFF” is stored when the library 114 is not a replacement target.
- the entry 409 of the thread number 405 when the library 114 includes a plurality of threads (multi-threads), a number corresponding to each thread (minimum unit of processing) is stored.
- the entry 410 of the number of calls 406 stores information indicating the number of times each thread has been called.
- FIG. 5 shows the relationship between the library and the function call macro control unit.
- the function call macro control unit 116 is arranged for each library 114, and includes a pre-processing unit 501, a function calling unit 502, and a post-processing unit 503.
- the preprocessing unit 501 In response to a function call for calling the function 115B from 115A, the function call unit 502 is instructed to call and a process for incrementing the number of calls is executed.
- the function calling unit 502 calls the function 115B from the library 114B and outputs the function 115B to the postprocessing unit 503.
- the post-processing unit 503 processes the function 115B called by the function calling unit 502 as the function 115A belonging to the library 114A, and executes a process for decrementing the call count counter.
- FIG. 6 shows a block diagram for explaining the processing contents for managing the execution status of the library.
- the preprocessing unit 501 sends the function call unit 502 to the library 114B. Instruct to call the function 115B to which it belongs, and increment the number of calls 406 in the number of calls counter 403 of the library management table 112 corresponding to the library 114B. For example, when the number of calls 406 of the thread # 1 is 0, 0 is changed to 1.
- the CPU 103 functions as a processing unit that executes a transaction of an application program including a plurality of libraries, and also functions as a function call issuing unit that issues a function call.
- the function calling unit 502 calls the function 115B from the library 114B and outputs it to the post-processing unit 503.
- the post-processing unit 503 outputs the function 115B to the library 114A as a function belonging to the function 115A, and decrements the call count 406 in the call count counter 403. For example, when the number of calls 406 of the thread # 1 is 1, 1 is changed to 0.
- the replacement control unit 111 executes processing for waiting for an online end or library replacement event (S701), determines whether or not there is an online end instruction (S702), and the online end instruction is input from the computer 141, for example. If it is determined, the processing in this routine is terminated, and if a library replacement instruction is input from the input device 105, information on the library management table 112 related to the specified replacement target library 114 is acquired. (S703).
- the replacement control unit 111 stores “ON” in the entry 408 of the replacement instruction flag 402 in the library management table 112 related to the replacement target library 114 (S704), and determines whether the library replacement is possible (S704). S705).
- the replacement control unit 111 determines whether the values of the number-of-calls counter 403 of the library 114 to be replaced are all 0, that is, the values of all the entries 410 of the number of calls 406 are all 0 (the number of calls of all threads is 0). If all the call counts 406 are 0, it is assumed that there is no process for calling a function belonging to the replacement target library 114 in each thread, and the library replacement process is executed (S706).
- the replacement control unit 111 notifies the AP server library replacement management unit 146 of the completion of replacement via the network 151 (S707), and notifies the waiting pre-processing unit 501 that the replacement has been completed (S708). ), “OFF” is stored in the entry 408 of the replacement instruction flag 402 of the library management table 112 (S709), and the process returns to step S701 again.
- step S705 if it is determined in step S705 that the library 114 cannot be replaced, among the functions that need to call the functions belonging to the replacement target library 114, there are threads that have not been processed, Since the number of thread calls is not 0, the process waits until the number of calls 406 of all threads becomes 0 (S710). Thereafter, the replacement control unit 111 proceeds to the process of step S706 on the condition that the number of calls 406 of all threads is zero.
- the preprocessing unit 501 of the function call macro control unit 116 starts processing in response to a function call from the function 115 and acquires information of the library management table 112 based on the function name added to the function call. Then, it is determined whether “OFF” is stored in the entry 408 of the replacement instruction flag 402 in the information of the acquired library management table 112 (S802).
- the preprocessing unit 501 determines that the library 114 to be called is the replacement target library 114 and belongs to this library 114. Whether or not the number of calls of the own thread (hereinafter, among the plurality of threads related to the library 114, the thread currently being processed is called the own thread and the other threads are called other threads) is 1 or more. Is determined (S803).
- step S803 If it is determined in step S803 that the number of calls of the own thread is not 1 or more but 0, the preprocessing unit 501 executes a process of waiting until a notification of replacement completion is received from the replacement control unit 111 (S804). Thereafter, the processing returns to step S802, and the processing of steps S802 to S803 is repeated.
- step S803 if it is determined in step S803 that the number of calls of the own thread is 1 or more, the preprocessing unit 501 increments the number of calls of the own thread, for example, sets the number of calls 406 to +1 (S805). Terminate the process.
- step S802 If it is determined in step S802 that the replacement instruction flag 402 is “OFF”, that is, if it is determined that the call target library 114 is not the replacement target library 114, the preprocessing unit 501 performs the process in step S805. Processing will be executed.
- a function call (a function call for calling a function belonging to the call target library 114) is subsequently performed by the function calling unit 502 without determining the number of calls 406 of the own thread. Will be executed.
- the post-processing unit 503 of the function call macro control unit 116 starts the process on condition that the function call unit 502 executes the process for calling the function, and stores the function in the library management table 112 corresponding to the call target library 114. It is determined whether or not “ON” is stored in the entry 408 of the replacement instruction flag 402 (S901). If the replacement instruction flag 402 is “ON”, the call target library 114 is replaced with the replacement target library 114. It is determined that the number of calls of the own thread is 1 (S902).
- step S902 If it is determined in step S902 that the number of calls 406 of the own thread is 1, the post-processing unit 503 determines whether the number of calls 406 of all other threads is 0 (S903).
- step S903 If it is determined in step S903 that the number of calls 406 of all other threads is 0, the number of calls 406 of the own thread is decremented, for example, the number of calls 406 is set to -1 (S904), and the waiting replacement is performed. Information indicating that the number of calls of all threads is 0 and replacement is possible is sent to the control unit 111 (S905), and the processing in this routine is terminated.
- the processing unit 503 notifies the standby switching control unit 111 of information indicating that the number of calls of all threads is 0 and switching is possible.
- the post-processing unit 503 determines that the call target library 114 is not the replacement target library 114 (S901) or the number of calls 406 of its own thread. Is not 1 (2 or more) (S902), and the call count 406 of another thread is not 0 (S903), the call count 406 of the own thread is decremented, for example, the call count 406 is set to -1. (S906), and the processing in this routine is terminated.
- the function call macro control unit 116 is a target of the function call.
- the library 114B determines whether or not it is a replacement target library. If it is determined that the library 114B that is the target of the function call is a replacement target library, is there a thread that uses the call target function 115B belonging to the replacement target library? If it is determined that there is a thread using the call target function 115B, the execution of the transaction using the replacement target library is continued until the processing of all threads using the call target function 115B is completed. There is a thread that uses the target function 115B If it is determined that there is not, the execution of the transaction using the replacement target library is temporarily suspended until the replacement of the replacement target library is completed.
- the replacement control unit 111 replaces the replacement target library with a new library on condition that the processing of all threads using the call target function 115B is completed.
- the application program can be replaced without stopping the online system 107 in the computer system operating for 24 hours and 365 days.
- the application program can be replaced even if a transaction is executed for a long time.
- the computer 141 manages the load state of each of the computers 101, 121, and 131.
- the computer with the lowest load is instructed to replace the library, and the instructed computer
- the library is replaced, and the configuration of the computer system is the same as that of the first embodiment.
- FIG. 10 shows the configuration of the AP server management table.
- the AP server management table 147 includes a library name 901, a replacement instruction flag 902, and a total call count counter storage location 903.
- Each library name 901 entry stores information on the library name. For example, “Library_A” is stored in the entry 904 as the name of the library A, and “Library_Z” is stored in the entry 905 as the name of the library Z.
- each entry of the replacement instruction flag 902 “ON” is stored when the library 114 is a library to be replaced, and “OFF” is stored when the library 114 is a library that is not a replacement target. Is done. For example, “ON” is stored in the entry 904 as the replacement target library, and “OFF” is stored in the entry 905 as the library Z is not the replacement target library.
- the entry 904 stores “storage destination address_A” as the storage destination address of the library A
- the entry 905 stores “storage destination address_Z” as the storage destination address of the library Z. .
- Each storage destination address includes an AP server name 911, a total call count counter 912, and a replacement completion flag 913.
- the AP server name 911 entry stores information about the AP server name. For example, “AP server_1” is stored as the AP server name of the computer 101 in the entry 914, and “AP server_n” is stored as the AP server name of the n computers in the entry 915.
- the entry of the total number of calls counter 912 information on the number of times the library used in each AP server has been called is stored as a numerical value. For example, the entry 914 stores “1” when the number of calls of the library A used by the computer 101 is 1, and the entry 915 stores “1” when the number of calls of the library Z used by the n computers is 0. “0” is stored.
- Each entry of the replacement completion flag 913 stores “ON” when the replacement of the library is completed as information indicating whether or not the replacement of the library used in each AP server is completed. If the process is not completed, “OFF” is stored. For example, the entry 914 stores “OFF” as the replacement of the library A as the # 1 AP server is not completed, and the entry 915 completes the replacement of the library A for the #n AP server. “OFF” is stored as not being performed.
- FIG. 11 shows a block diagram for explaining the processing contents of a library replacement instruction from the load balancing system to the AP server.
- the AP server library replacement management unit 146 of the computer 141 receives a library A replacement instruction (A1101) from the input device 105, the AP server library replacement management unit 146 selects each AP server (each computer 101, each computer 101, 121, 131), the AP server management table 147 corresponding to the library A is searched (A1102), and the AP server having the lowest load is, for example, the total call count counter 912 for the library A. Information is acquired, and “AP server — 3” having the lowest value of the total call counter 912 is selected as the AP server with the lowest load.
- the AP server library replacement management unit 146 instructs the replacement control unit 111 of the computer 131 to replace the library A (A1103).
- the library A is exchanged from the input device 105 to the AP server library exchange management unit 146 of the computer 141 while each computer 101, 121, 131 is executing a transaction including the library A to be replaced.
- the AP server library replacement management unit 146 instructs the replacement control unit 111 of the computer 131 with the lowest load to replace the library A, so that the replacement control unit 111 of the computer 131
- the library A can be replaced while the execution of the transaction including the library A to be replaced is temporarily suspended.
- the other computers 101 and 121 can perform the transaction including the library A to be replaced without stopping the service. Can continue.
- the AP server library replacement management unit 146 executes online termination, library replacement, or execution status notification event waiting processing (S1201), and whether any of the computers 101, 121, 131 has received an online termination instruction. (S1202), if there is an online termination instruction from any of the computers, the processing in this routine is terminated. If it is determined that there is no online termination instruction, there is a library replacement instruction. It is determined whether or not (S1203).
- the AP server library replacement management unit 146 refers to the AP server management table 147 based on the information (the library name of the replacement target library) added to the library replacement instruction, and performs replacement.
- a target library for example, library A is identified (S1204), and “ON” is written in the entry of the replacement instruction flag 902 of the replacement target library on the AP server management table 147 (S1205).
- the AP server library replacement management unit 146 selects the AP server name 911 having the smallest value of the total call count counter 912 with the replacement completion flag 913 being “OFF” and having the highest load. It is acquired as a lower AP server name (S1206), and it is determined whether or not the AP server name has been acquired (S1207).
- the AP server library replacement management unit 146 sets the AP server corresponding to the acquired AP server name as the processing target AP server, and sends it to the replacement control unit 111 of the AP server.
- An exchange is instructed (S1208). For example, when the total call counter 912 of the # 3 AP server has the smallest value, the AP server library replacement management unit 146 selects the computer 131 as the processing target AP server with the lowest load, and the computer The exchange control unit 111 of 131 is instructed to exchange the library A.
- the AP server library replacement management unit 146 performs processing of waiting for replacement completion from the replacement management unit 111 of the processing target AP server (S1209), and the replacement management unit 111 notifies, for example, completion of replacement of the library A.
- “ON” is written in the entry of the replacement completion flag 913 corresponding to the processing target AP server in the AP server management table 147 (S1210).
- the AP server library replacement management unit 146 writes “ON” in the entry 916 corresponding to the computer 131 in the replacement completion flag 913.
- the AP server library replacement management unit 146 returns to step S1206 and repeats the processing of S1206 to S1212.
- the AP server library replacement management unit 146 determines that the replacement of the library A has been completed, and the entry of the replacement completion flag 913 of all AP servers in the AP server management table 147 is completed. "OFF" is written to each of them (S1211), and "OFF” is written to the entry 904 corresponding to the library A among the entries of the replacement instruction flag 902 of the AP server management table 147, and then the processing returns to the step S1201. The processes in steps S1201 to S1212 are repeated.
- step S1203 If it is determined in step S1203 that the instruction is not a library replacement instruction, the AP server library replacement management unit 146 refers to the AP server management table 147 as a library execution status notification instruction, and determines the replacement target library in the AP server management table 147.
- the total number-of-calls counter 912 is updated (S1213), and then the process returns to step S1201 to repeat the processes of steps S1201 to S1213.
- the AP server library replacement management unit 146 has the lowest load.
- the replacement control unit 111 of the computer 131 replaces the library A in a state where the execution of the transaction including the library A to be replaced is temporarily suspended.
- the other computers 101 and 121 can continue the transaction including the library A to be replaced without stopping the service.
- the library execution status notifying unit 113 is activated at a user-specified interval, for example, at an interval of 10 seconds (S1301), and the information on the call count counter 403 in the library management table 112 is replaced with the AP server library of the computer 141 via the network 151.
- the management unit 146 is notified (S1302), and it is determined whether or not there is an online termination instruction from the computer 141 (S1303). If there is an online termination instruction, the processing in this routine is terminated and an online termination instruction is issued. If it is determined that there is not, the processes in steps S1301 to S1303 are repeated.
- the library execution status notification unit 113 can notify the AP server library replacement management unit 146 of the information on the number of calls 403 in the library management table 112 at intervals of 10 seconds.
- the computer 141 when replacing the application program used in the computers 101, 121, 131, the computer 141 selects the computer 131 having the lowest load among the computers 101, 121, 131, and the replacement control unit 111 of the selected computer 131.
- the function call macro control unit 116 belonging to the computer 131 instructed to replace the application program temporarily suspends execution of the transaction of the application program, and the replacement control unit 111 belonging to the computer 131
- the application program is replaced on condition that the execution of the application program transaction is temporarily suspended.
- the function call macro control unit 116 belonging to the other computers 101 and 121 not instructed to replace the application program continues to execute the transaction of the application program without stopping the service.
- the application program in a computer system operating for 24 hours and 365 days, can be replaced without stopping the online system 107 or service at all.
- the application program can be replaced even if a transaction is executed for a long time.
- this invention is not limited to the above-mentioned Example, Various modifications are included.
- the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described.
- a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment.
- Each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
- Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor.
- Information such as programs, tables, and files that realize each function is stored in memory, a hard disk, a recording device such as an SSD (Solid State Drive), an IC (Integrated Circuit) card, an SD (Secure Digital) memory card, a DVD ( It can be recorded on a recording medium such as Digital Versatile Disc).
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
In a process involving the execution of transactions involving a program that includes multiple libraries, a function-calling macro control unit, which, when there are threads that use a call function belonging to a library subject to a function call, said library being subject to replacement, completes the processing of all threads that use a function to be called, and, in the interim, resumes transactions that use the library subject to replacement, and which, when there are no threads that use a function to be called, temporarily suspends the execution of transactions that use a library subject to replacement until the library has been replaced. A replacement control unit replaces the library subject to replacement with a new library on condition that the processing of all threads that use a function to be called has been completed.
Description
本発明は、オンラインシステムにおけるアプリケーションプログラムの入れ替え機能を有する計算機システムと計算機システムのプログラム入替方法及びプログラム入替処理プログラムに関する。
The present invention relates to a computer system having an application program replacement function in an online system, a computer system program replacement method, and a program replacement processing program.
従来、オンラインシステムにおいて、アプリケーションプログラムに対する軽微な不良修正を行う必要が生じた場合、あるいはアプリケーションプログラムの性能向上を行う必要が生じた場合、アプリケーションプログラムを新規なものと入れ替えることが行われる。
Conventionally, in the online system, when it is necessary to make a minor defect correction to an application program, or when it is necessary to improve the performance of an application program, the application program is replaced with a new one.
この際、アプリケーションプログラムを使用するトランザクションを実行中の場合、アプリケーションプログラムを入れ替えるには、トランザクションの終了を待つ必要がある。
At this time, when a transaction using the application program is being executed, it is necessary to wait for the end of the transaction to replace the application program.
このため、従来のオンラインシステムにおいては、アプリケーションプログラムを使用するトランザクションの終了を待ってオンラインを停止するか、あるいはサービスを停止した後、アプリケーションプログラムを入れ替える必要がある。しかも、実行中のトランザクションが長時間に亘る場合は、緊急なアプリケーションプログラムの入れ替えが不可能となることがある。ここで、サービスの停止とは、該当業務処理に対する要求を停止することである。
For this reason, in the conventional online system, it is necessary to stop online after the end of the transaction using the application program, or to replace the application program after stopping the service. In addition, when a transaction being executed lasts for a long time, an urgent application program replacement may not be possible. Here, the service stop means stopping a request for the corresponding business process.
一方、通常時の業務ライブラリモジュール(LM)と切り替え後の業務LMの2つの名称とその状態を各トランザクションの共有メモリ上で管理手段が管理し、トランザクションが業務LMを呼び出す場合、管理手段の共有メモリ上の名称と管理状態を参照し、間接的に業務LMを呼び出し、管理手段に保持される業務LMの状態の変更と同時に業務LMの入れ替えを可能とするものが提案されている(特許文献1参照)。
On the other hand, if the management means manages two names of the business library module (LM) at normal time and the switched business LM and their status on the shared memory of each transaction, and the transaction calls the business LM, the management means is shared There has been proposed a method that refers to a name and management state in a memory, indirectly calls a business LM, and allows the business LM to be replaced simultaneously with the change of the status of the business LM held in the management means (Patent Document) 1). *
特許文献1では、通常時の業務LMと切り替え後の業務LMとの2つの名称とその状態を各トランザクションの共有メモリ上で管理手段が管理し、トランザクションが業務LMを使用する場合、業務LMを直接呼び出さず、共有メモリ上の名称と状態を参照し、間接的に業務LMを呼び出すことで、トランザクションで業務LMを使用中でも、業務LMの入れ替えを可能としている。
In Patent Document 1, the management means manages two names of the business LM at normal time and the business LM after switching and the state thereof on the shared memory of each transaction. By calling the business LM indirectly by referring to the name and status in the shared memory instead of calling directly, the business LM can be replaced even when the business LM is being used in a transaction.
しかし、業務LMに複数のスレッドが存在する場合、特許文献1のものでは、各スレッドの状態を監視する機能がないので、各スレッドの状態によってはトランザクションの実行中に業務LMを切り替えることができなくなる。
However, when there are a plurality of threads in the business LM, the one disclosed in Patent Document 1 does not have a function for monitoring the state of each thread. Therefore, depending on the state of each thread, the business LM can be switched during execution of a transaction. Disappear.
本発明は、前記従来技術の課題に鑑みて為されたものであり、その目的は、プログラムを使用するトランザクションの実行中でも、プログラムを入れ替えることができる計算機システムと計算機システムのプログラム入替方法及びプログラム入替処理プログラムを提供することにある。
The present invention has been made in view of the problems of the prior art described above, and its purpose is to provide a computer system capable of replacing a program even during execution of a transaction using the program, a program replacement method for the computer system, and a program replacement. To provide a processing program.
前記目的を達成するために、本発明は、複数の処理用計算機と、前記複数の処理用計算機とネットワークを介して情報の授受を行って、前記複数の処理用計算機の処理状態を管理する管理用計算機とを有する計算機システムであって、前記各処理用計算機は、プログラムのトランザクションを実行する過程で、関数コールを発行する関数コール発行部と、前記関数コールの対象を利用するスレッドの状態に応じて前記トランザクションの実行を制御する関数呼出用マクロ制御部と、前記関数呼出用マクロ制御部の制御結果を基に前記プログラムを新規のプログラムと入れ替える入れ替え制御部とから構成され、前記関数呼出用マクロ制御部は、関数コールの対象が、入替対象であって、当該入替対象を用いるスレッドが存在する場合、全てのスレッドの処理を完了させ、その間、入替対象を利用するトランザクションを続行し、前記入替対象を用いるスレッドが存在しない場合、入替対象の入れ替えが完了するまで、入替対象を利用するトランザクションの実行を一時保留することを特徴とする。
In order to achieve the object, the present invention provides a management for managing a processing state of the plurality of processing computers by exchanging information with the plurality of processing computers and the plurality of processing computers via a network. Each of the processing computers is in a state of a thread that uses a function call issuing unit that issues a function call and a function call target in the course of executing a program transaction. And a function call macro control unit for controlling the execution of the transaction, and a replacement control unit for replacing the program with a new program based on a control result of the function call macro control unit. The macro control unit, when the target of the function call is a replacement target and there is a thread that uses the replacement target, Complete the red process and continue the transaction that uses the replacement target. If there is no thread that uses the replacement target, temporarily suspend the execution of the transaction that uses the replacement target until the replacement of the replacement target is completed. It is characterized by doing.
本発明によれば、プログラムを使用するトランザクションの実行中でも、プログラムを入れ替えることができる。
According to the present invention, a program can be replaced even while a transaction using the program is being executed.
以下、実施例を図面に基づいて説明する。
〈第1実施例〉
本実施例は、関数コールが発行された際に、関数呼出用マクロ制御部が、関数コールの対象となる呼び出し対象関数を利用するスレッドの状態に応じてトランザクションの実行を制御することで、プログラムを使用するトランザクションの実行中でも、プログラムを入れ替えられるようにしたものである。 Embodiments will be described below with reference to the drawings.
<First embodiment>
In this embodiment, when the function call is issued, the function call macro control unit controls the execution of the transaction according to the state of the thread that uses the call target function that is the target of the function call. The program can be changed even during the execution of a transaction that uses.
〈第1実施例〉
本実施例は、関数コールが発行された際に、関数呼出用マクロ制御部が、関数コールの対象となる呼び出し対象関数を利用するスレッドの状態に応じてトランザクションの実行を制御することで、プログラムを使用するトランザクションの実行中でも、プログラムを入れ替えられるようにしたものである。 Embodiments will be described below with reference to the drawings.
<First embodiment>
In this embodiment, when the function call is issued, the function call macro control unit controls the execution of the transaction according to the state of the thread that uses the call target function that is the target of the function call. The program can be changed even during the execution of a transaction that uses.
以下、本発明の一実施例を図面に基づいて説明する。
Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
図1は、本発明が適用された計算機システムの全体構成を示すブロック構成図である。図1において、計算機システムは、24時間、365日稼働しているシステムであって、計算機101、121、131、141を備え、各計算機101、121、131、141がネットワーク151を介して互いに接続されている。
FIG. 1 is a block diagram showing the overall configuration of a computer system to which the present invention is applied. In FIG. 1, the computer system is a system that operates 24 hours a day, 365 days, and includes computers 101, 121, 131, 141, and the computers 101, 121, 131, 141 are connected to each other via a network 151. Has been.
計算機101、121、131は、オンラインシステム処理計算機(処理用計算機)あるいはアプリケーションサーバ(APサーバ)として構成され、計算機141は、各計算機101、121、131の負荷の状態を管理する負荷分散システム処理計算機(管理用計算機)として構成されている。なお、計算機101、121、131は、同一のもので構成されているため、以下、オンラインシステム処理計算機あるいはアプリケーションサーバ(APサーバ)としては、主に計算機101を用いて説明する。
The computers 101, 121, and 131 are configured as online system processing computers (processing computers) or application servers (AP servers), and the computer 141 is a load balancing system process that manages the load status of each of the computers 101, 121, and 131. It is configured as a computer (management computer). Since the computers 101, 121, and 131 are configured in the same manner, the following description will be made mainly using the computer 101 as the online system processing computer or application server (AP server).
計算機101は、主記憶装置102と、CPU(Central Processing Unit)103と、補助記憶装置104と、キーボードなどを含む入力装置105と、モニタなどを含む出力装置106が構成され、主記憶装置102には、オンラインシステム107とオペレーティングシステム(OS)108が格納される。
The computer 101 includes a main storage device 102, a CPU (Central Processing Unit) 103, an auxiliary storage device 104, an input device 105 including a keyboard, and an output device 106 including a monitor. Stores an online system 107 and an operating system (OS) 108.
オンラインシステム107は、オペレーティングシステム108に従って動作するプログラムであって、ライブラリ管理部109と、ライブラリ群110から構成される。
The online system 107 is a program that operates according to the operating system 108, and includes a library management unit 109 and a library group 110.
ライブラリ管理部109は、入れ替え制御部111と、ライブラリ情報管理テーブル112と、ライブラリ実行状況通知部113から構成され、ライブラリ群110は、複数のライブラリ114から構成される。各ライブラリ114は、複数の関数115と、関数呼出用マクロ制御部116から構成される。ここで、ライブラリとは、アプリケーションプログラムで使用する関数やサブルーチン、データなどの集まりである。
The library management unit 109 includes a replacement control unit 111, a library information management table 112, and a library execution status notification unit 113, and the library group 110 includes a plurality of libraries 114. Each library 114 includes a plurality of functions 115 and a function call macro control unit 116. Here, the library is a collection of functions, subroutines, data, etc. used in the application program.
CPU103は、オペレーティングシステム108とオンラインシステム107を動作させて、計算機101全体を統括制御する制御部として機能する。
The CPU 103 functions as a control unit that controls the entire computer 101 by operating the operating system 108 and the online system 107.
補助記憶装置104は、ユーザデータや各種プログラムなどを格納する。
The auxiliary storage device 104 stores user data and various programs.
入力装置105は、ユーザの操作に応答して、入れ替え指示などの情報を入れ替え制御部111へ出力する。
The input device 105 outputs information such as a replacement instruction to the replacement control unit 111 in response to a user operation.
出力装置106は、CPU103の処理結果やユーザが入力するための情報などを画面上に表示する。
The output device 106 displays the processing result of the CPU 103 and information for the user to input on the screen.
計算機141は、CPU142と、主記憶装置143と、補助記憶装置144から構成される。主記憶装置143は、負荷分散システム145を格納する。負荷分散システム145は、AP(アプリケーション)サーバライブラリ入れ替え管理部146と、APサーバ管理テーブル147から構成される。
The computer 141 includes a CPU 142, a main storage device 143, and an auxiliary storage device 144. The main storage device 143 stores the load distribution system 145. The load distribution system 145 includes an AP (application) server library replacement management unit 146 and an AP server management table 147.
CPU142は、計算機141全体を統括制御するとともに、各計算機101、121、131とネットワーク151を介して情報の授受を行うための制御を実行する。
The CPU 142 performs overall control of the computer 141 and executes control for exchanging information with each computer 101, 121, 131 via the network 151.
APサーバライブラリ入れ替え管理部146は、各計算機101、121、131からネットワーク151を介して情報を取り込み、各計算機101、121、131におけるライブラリ114の入れ替え対象となるライブラリを管理する。APサーバ管理テーブル147は、各APサーバ(各計算機101、121、131)におけるライブラリが、入れ替え対象となるライブラリか否かを管理するための情報などを格納する。
The AP server library replacement management unit 146 takes in information from each of the computers 101, 121, and 131 via the network 151, and manages a library that is a replacement target of the library 114 in each of the computers 101, 121, and 131. The AP server management table 147 stores information for managing whether or not the library in each AP server (each computer 101, 121, 131) is a library to be replaced.
補助記憶装置144は、ユーザが、入力装置105を用いて定義した定義ファイルに関する情報を格納する。
The auxiliary storage device 144 stores information related to the definition file defined by the user using the input device 105.
次に、図2に、入れ替え対象ライブラリの関数コールを保留する場合の概念図を示す。
Next, FIG. 2 shows a conceptual diagram when the function call of the library to be replaced is put on hold.
図2において、アプリケーションプログラム(業務アプリケーションプログラム)を使用するトランザクションとして、トランザクション211、212、213、214が順次実行される過程で、トランザクション211が、複数のライブラリ114として、例えば、ライブラリ114A、ライブラリ114D、ライブラリ114Gで構成され、これらのライブラリの中に、入れ替え対象となるライブラリ114Hが存在しない場合、各ライブラリ(ライブラリ114A、ライブラリ114D、ライブラリ114G)間で関数コールが発生しても、トランザクション211を継続することができるとともに、入れ替え対象ライブラリ114Hが新規なものと入れ替えられても、トランザクション211を継続することができる。
In FIG. 2, in the process in which transactions 211, 212, 213, and 214 are sequentially executed as transactions using an application program (business application program), the transaction 211 becomes a plurality of libraries 114, for example, library 114A and library 114D. , Library 114G, and if library 114H to be replaced does not exist among these libraries, transaction 211 is executed even if a function call occurs between the libraries (library 114A, library 114D, library 114G). The transaction 211 can be continued even if the replacement target library 114H is replaced with a new one.
一方、トランザクション212が、複数のライブラリ114として、例えば、ライブラリ114B、ライブラリ114E、ライブラリ114H、ライブラリ114Jから構成され、これらのライブラリの中に、入れ替え対象となるライブラリ114Hが存在する場合、トランザクション212を実行中に、ライブラリ114Eに属する関数が、ライブラリ114Hに属する関数を呼び出す関数コールが発生すると、入れ替え対象のライブラリ114Hの入れ替えが完了するまで、関数コールが保留されることになる。この場合、関数コールは一時保留されるが、トランザクション212の実行中に、入れ替え対象ライブラリ114Hを新規なものと入れ替えることが可能になる。
On the other hand, the transaction 212 includes, for example, a library 114B, a library 114E, a library 114H, and a library 114J as a plurality of libraries 114. If the library 114H to be replaced exists in these libraries, the transaction 212 is changed. If a function call that causes a function belonging to the library 114E to call a function belonging to the library 114H occurs during execution, the function call is put on hold until the replacement of the replacement target library 114H is completed. In this case, the function call is temporarily suspended, but the replacement target library 114H can be replaced with a new one during execution of the transaction 212.
また、トランザクション213が、複数のライブラリ114として、例えば、ライブラリ114C、ライブラリ114Fから構成され、これらのライブラリの中に、入れ替え対象となるライブラリ114Hは存在しないが、ライブラリ114Fに属する関数の中に、入れ替え対象のライブラリ114Hに属する関数を呼び出す関数が存在する場合、トランザクション213を実行中に、ライブラリ114Fに属する関数が、入れ替え対象のライブラリ114Hに属する関数を呼び出す関数コールが発生すると、この関数コールは、入れ替え対象のライブラリ114Hの入れ替えが完了するまで一時保留となる。この場合、関数コールは一時保留されるが、トランザクション213の実行中に、入れ替え対象ライブラリ114Hを新規なものと入れ替えることが可能になる。
In addition, the transaction 213 includes, for example, a library 114C and a library 114F as a plurality of libraries 114. There is no library 114H to be replaced among these libraries, but among the functions belonging to the library 114F, If there is a function that calls a function belonging to the library 114H to be replaced, and a function call that calls a function belonging to the library 114H to be replaced occurs during execution of the transaction 213, the function call This is temporarily suspended until the replacement of the replacement target library 114H is completed. In this case, the function call is temporarily suspended, but the replacement target library 114H can be replaced with a new one during the execution of the transaction 213.
また、トランザクション214が、複数のライブラリ114として、例えば、ライブラリ114Cと、ライブラリ114Fと、ライブラリ114Iから構成され、これらのライブラリの中に、入れ替え対象となるライブラリ114Hが存在しないとともに、各ライブラリ(ライブラリ114C、ライブラリ114F、ライブラリ114I)に属する関数の中に、入れ替え対象のライブラリ114Hに属する関数を呼び出す関数が存在しない場合、トランザクション214の実行中に、各ライブラリ(ライブラリ114C、ライブラリ114F、ライブラリ114I)間で関数コールが発生しても、トランザクション214を継続することができるとともに、入れ替え対象ライブラリ114Hが新規なものと入れ替えられても、トランザクション214を継続することができる。
In addition, the transaction 214 includes, for example, a library 114C, a library 114F, and a library 114I as a plurality of libraries 114. Among these libraries, there is no library 114H to be replaced, and each library (library) 114C, library 114F, library 114I), when there is no function that calls a function belonging to the library 114H to be replaced, each library (library 114C, library 114F, library 114I) is being executed during the transaction 214. The transaction 214 can be continued even if a function call occurs between them, and the transaction 214 is continued even if the replacement target library 114H is replaced with a new one. Rukoto can.
次に、図3に、定義ファイルの構成を示す。図3において、定義ファイル131は、例えば、ユーザが、入力装置105を用いて入力した情報から構成される。
Next, Fig. 3 shows the structure of the definition file. In FIG. 3, the definition file 131 includes information input by the user using the input device 105, for example.
この定義ファイル131は、例えば、ライブラリ114に相当するライブラリAが、関数A1と関数A2から構成される場合、ライブラリ名が、ライブラリAとして定義され、関数名が、関数A1、関数A2として定義され、ライブラリ114に相当するライブラリBが、関数B1と関数B2から構成される場合、ライブラリ名が、ライブラリBとして定義され、関数名が、それぞれ関数B1、関数B2として定義される。この際、各ライブラリA、Bは、互いに連携して動作するため、各ライブラリ間の関係も定義されることになる。
In the definition file 131, for example, when the library A corresponding to the library 114 is composed of the function A1 and the function A2, the library name is defined as the library A, and the function names are defined as the function A1 and the function A2. When the library B corresponding to the library 114 is composed of the function B1 and the function B2, the library name is defined as the library B, and the function names are defined as the function B1 and the function B2, respectively. At this time, since the libraries A and B operate in cooperation with each other, the relationship between the libraries is also defined.
次に、図4に、ライブラリ管理テーブルの構成を示す。図4において、ライブラリ管理テーブル112は、ライブラリ114を管理するテーブルであって、ライブラリ名401と、入替指示フラグ402と、呼出回数カウンタ403と、関数名404から構成され、呼出回数カウンタ403は、スレッド番号405と、呼出回数406から構成される。
Next, FIG. 4 shows the configuration of the library management table. In FIG. 4, a library management table 112 is a table for managing the library 114, and includes a library name 401, a replacement instruction flag 402, a call count counter 403, and a function name 404. It consists of a thread number 405 and the number of calls 406.
ライブラリ名401のエントリ407には、ライブラリ114の名称に関する情報として、例えば、ライブラリ114に相当するライブラリAの場合、「Library-_A」が格納される。入替指示フラグ402のエントリには、入替指示フラグ402の情報として、ライブラリ114が入れ替え対象となる場合、「ON」が格納され、ライブラリ114が入れ替え対象でない場合には、「OFF」が格納される。
In the entry 407 of the library name 401, “Library-_A” is stored as information related to the name of the library 114, for example, in the case of the library A corresponding to the library 114. In the entry of the replacement instruction flag 402, “ON” is stored as information of the replacement instruction flag 402 when the library 114 is a replacement target, and “OFF” is stored when the library 114 is not a replacement target. .
スレッド番号405のエントリ409には、ライブラリ114が複数のスレッド(マルチスレッド)を含む場合、各スレッド(処理の最小単位)に対応した番号が格納される。呼出回数406のエントリ410には、各スレッドが呼び出された回数を示す情報が格納される。
In the entry 409 of the thread number 405, when the library 114 includes a plurality of threads (multi-threads), a number corresponding to each thread (minimum unit of processing) is stored. The entry 410 of the number of calls 406 stores information indicating the number of times each thread has been called.
関数名404のエントリ411には、ライブラリ名401で特定されるライブラリ114に属する関数名の情報が格納される。例えば、ライブラリ114に相当するライブラリAが、関数A1~Anで構成される場合、「Function_A1」~「Function_An」が格納される。
In the entry 411 of the function name 404, information on function names belonging to the library 114 specified by the library name 401 is stored. For example, when the library A corresponding to the library 114 is composed of functions A1 to An, “Function_A1” to “Function_An” are stored.
次に、図5に、ライブラリと関数呼出用マクロ制御部との関係を示す。
Next, FIG. 5 shows the relationship between the library and the function call macro control unit.
関数呼出用マクロ制御部116は、ライブラリ114毎に配置され、前処理部501と、関数呼出部502と、後処理部503から構成される。
The function call macro control unit 116 is arranged for each library 114, and includes a pre-processing unit 501, a function calling unit 502, and a post-processing unit 503.
ここで、例えば、ライブラリAをライブラリ114Aとし、ライブラリ114Aに属する関数115を関数115Aとし、ライブラリBをライブラリ114Bとし、ライブラリ114Bに属する関数115を関数115Bとした場合、前処理部501は、関数115Aから関数115Bを呼び出すための関数コールに応答して、関数呼出部502に呼び出しを指示するとともに、コール回数をインクルメントするための処理を実行する。
Here, for example, when the library A is the library 114A, the function 115 belonging to the library 114A is the function 115A, the library B is the library 114B, and the function 115 belonging to the library 114B is the function 115B, the preprocessing unit 501 In response to a function call for calling the function 115B from 115A, the function call unit 502 is instructed to call and a process for incrementing the number of calls is executed.
関数呼出部502は、前処理部501から指示された呼出対象の関数が、ライブラリ114Bに属する関数115Bである場合、ライブラリ114Bから関数115Bを呼び出し、後処理部503に出力する。
When the call target function instructed from the preprocessing unit 501 is the function 115B belonging to the library 114B, the function calling unit 502 calls the function 115B from the library 114B and outputs the function 115B to the postprocessing unit 503.
後処理部503は、関数呼出部502によって呼び出された関数115Bをライブラリ114Aに属する関数115Aとして処理するとともに、コール回数カウンタをディクリメントするための処理を実行する。
The post-processing unit 503 processes the function 115B called by the function calling unit 502 as the function 115A belonging to the library 114A, and executes a process for decrementing the call count counter.
次に、図6に、ライブラリの実行状況を管理するための処理内容を説明するためのブロック図を示す。
Next, FIG. 6 shows a block diagram for explaining the processing contents for managing the execution status of the library.
図6において、ライブラリ114Aに属する関数115Aが処理されている過程で、関数115Aから、関数115Bを呼び出すための関数コールが発生した場合、前処理部501は、関数呼出部502に、ライブラリ114Bに属する関数115Bの呼び出しを指示するとともに、ライブラリ114Bに対応したライブラリ管理テーブル112の呼出回数カウンタ403のうち呼出回数406をインクリメントする。例えば、#1のスレッドの呼出回数406が0の場合、0を1に変更する。
In FIG. 6, when a function call for calling the function 115B is generated from the function 115A while the function 115A belonging to the library 114A is being processed, the preprocessing unit 501 sends the function call unit 502 to the library 114B. Instruct to call the function 115B to which it belongs, and increment the number of calls 406 in the number of calls counter 403 of the library management table 112 corresponding to the library 114B. For example, when the number of calls 406 of the thread # 1 is 0, 0 is changed to 1.
この際、CPU103は、複数のライブラリを含むアプリケーションプログラムのトランザクションを実行する処理部として機能するとともに、関数コールを発行する関数コール発行部として機能することになる。
At this time, the CPU 103 functions as a processing unit that executes a transaction of an application program including a plurality of libraries, and also functions as a function call issuing unit that issues a function call.
次に、関数呼出部502は、前処理部501から指示された呼出対象の関数が、ライブラリ114Bに属する関数115Bである場合、ライブラリ114Bから関数115Bを呼び出し、後処理部503に出力する。
Next, when the function to be called instructed from the pre-processing unit 501 is the function 115B belonging to the library 114B, the function calling unit 502 calls the function 115B from the library 114B and outputs it to the post-processing unit 503.
後処理部503は、関数115Bを、関数115Aに属する関数としてライブラリ114Aに出力するとともに、呼出回数カウンタ403のうち呼出回数406をディクリメントする。例えば、#1のスレッドの呼出回数406が1である場合、1を0に変更する。
The post-processing unit 503 outputs the function 115B to the library 114A as a function belonging to the function 115A, and decrements the call count 406 in the call count counter 403. For example, when the number of calls 406 of the thread # 1 is 1, 1 is changed to 0.
次に、入れ替え制御部の処理内容を図7のフローチャートに従って説明する。まず、入れ替え制御部111は、オンライン終了またはライブラリ入替のイベント待ちの処理を実行し(S701)、オンライン終了指示があったか否かを判定し(S702)、オンライン終了指示が、例えば、計算機141から入力されていた場合には、このルーチンでの処理を終了し、入力装置105からライブラリ入替の指示が入力されていた場合には、指示された入替対象のライブラリ114に関するライブラリ管理テーブル112の情報を取得する(S703)。
Next, the processing content of the replacement control unit will be described with reference to the flowchart of FIG. First, the replacement control unit 111 executes processing for waiting for an online end or library replacement event (S701), determines whether or not there is an online end instruction (S702), and the online end instruction is input from the computer 141, for example. If it is determined, the processing in this routine is terminated, and if a library replacement instruction is input from the input device 105, information on the library management table 112 related to the specified replacement target library 114 is acquired. (S703).
次に、入れ替え制御部111は、入替対象のライブラリ114に関するライブラリ管理テーブル112のうち入替指示フラグ402のエントリ408に、「ON」を格納し(S704)、ライブラリ入替可能か否かを判定する(S705)。
Next, the replacement control unit 111 stores “ON” in the entry 408 of the replacement instruction flag 402 in the library management table 112 related to the replacement target library 114 (S704), and determines whether the library replacement is possible (S704). S705).
入れ替え制御部111は、入替対象となるライブラリ114の呼出回数カウンタ403の値が全て0、即ち、呼出回数406の全てのエントリ410の値が全て0(全てのスレッドの呼出回数が0)か否かを判定し、全ての呼出回数406が0である場合、各スレッドには、入替対象ライブラリ114に属する関数を呼び出す処理が存在しないとして、ライブラリ入れ替えの処理を実行する(S706)。
The replacement control unit 111 determines whether the values of the number-of-calls counter 403 of the library 114 to be replaced are all 0, that is, the values of all the entries 410 of the number of calls 406 are all 0 (the number of calls of all threads is 0). If all the call counts 406 are 0, it is assumed that there is no process for calling a function belonging to the replacement target library 114 in each thread, and the library replacement process is executed (S706).
この後、入れ替え制御部111は、ネットワーク151を介して、APサーバライブラリ入れ替え管理部146へ入れ替え完了を通知し(S707)、待機中の前処理部501に入れ替えが完了した旨を通知し(S708)、ライブラリ管理テーブル112の入替指示フラグ402のエントリ408に「OFF」を格納し(S709)、再びステップS701の処理に戻る。
Thereafter, the replacement control unit 111 notifies the AP server library replacement management unit 146 of the completion of replacement via the network 151 (S707), and notifies the waiting pre-processing unit 501 that the replacement has been completed (S708). ), “OFF” is stored in the entry 408 of the replacement instruction flag 402 of the library management table 112 (S709), and the process returns to step S701 again.
一方、ステップS705において、ライブラリ114の入替が可能でないと判定した場合には、入替対象ライブラリ114に属する関数を呼び出す必要のある関数の中に、処理が完了していないスレッドが存在し、全てのスレッドの呼出回数が0でないので、全てのスレッドの呼出回数406が、0となるまで待機する(S710)。この後、入れ替え制御部111は、全てのスレッドの呼出回数406が、0となったことを条件に、ステップS706の処理に移行する。
On the other hand, if it is determined in step S705 that the library 114 cannot be replaced, among the functions that need to call the functions belonging to the replacement target library 114, there are threads that have not been processed, Since the number of thread calls is not 0, the process waits until the number of calls 406 of all threads becomes 0 (S710). Thereafter, the replacement control unit 111 proceeds to the process of step S706 on the condition that the number of calls 406 of all threads is zero.
次に、前処理部の処理内容を図8のフローチャートに従って説明する。
Next, the processing contents of the preprocessing unit will be described with reference to the flowchart of FIG.
まず、関数呼出用マクロ制御部116の前処理部501は、関数115からの関数コールに応答して処理を開始し、関数コールに付加された関数名を基にライブラリ管理テーブル112の情報を取得し(S801)、取得したライブラリ管理テーブル112の情報のうち入替指示フラグ402のエントリ408に「OFF」が格納されているか否かを判定する(S802)。
First, the preprocessing unit 501 of the function call macro control unit 116 starts processing in response to a function call from the function 115 and acquires information of the library management table 112 based on the function name added to the function call. Then, it is determined whether “OFF” is stored in the entry 408 of the replacement instruction flag 402 in the information of the acquired library management table 112 (S802).
次に、前処理部501は、呼出対象のライブラリ114に関する入替指示フラグ402が「ON」である場合には、呼出対象のライブラリ114は入替対象ライブラリ114であると判定し、このライブラリ114に属する自スレッド(以下、ライブラリ114に関する複数のスレッドのうち、現時点で処理対象としているスレッドを自スレッドと称し、それ以外のスレッドを他のスレッドと称することがある。)の呼出回数が1以上か否かを判定する(S803)。
Next, when the replacement instruction flag 402 related to the library 114 to be called is “ON”, the preprocessing unit 501 determines that the library 114 to be called is the replacement target library 114 and belongs to this library 114. Whether or not the number of calls of the own thread (hereinafter, among the plurality of threads related to the library 114, the thread currently being processed is called the own thread and the other threads are called other threads) is 1 or more. Is determined (S803).
ステップS803において、自スレッドの呼出回数が1以上ではなく、0であると判定した場合、前処理部501は、入れ替え制御部111から入れ替え完了の通知を受けるまで待機する処理を実行し(S804)、その後、ステップS802の処理に戻り、ステップS802からS803の処理を繰り返す。
If it is determined in step S803 that the number of calls of the own thread is not 1 or more but 0, the preprocessing unit 501 executes a process of waiting until a notification of replacement completion is received from the replacement control unit 111 (S804). Thereafter, the processing returns to step S802, and the processing of steps S802 to S803 is repeated.
一方、ステップS803において、自スレッドの呼出回数が1以上であると判定した場合、前処理部501は、自スレッドの呼出回数をインクリメント、例えば、呼出回数406を+1とし(S805)、このルーチンでの処理を終了する。
On the other hand, if it is determined in step S803 that the number of calls of the own thread is 1 or more, the preprocessing unit 501 increments the number of calls of the own thread, for example, sets the number of calls 406 to +1 (S805). Terminate the process.
自スレッドの呼出回数が1以上である場合、呼出対象ライブラリ114に属する関数を呼び出すための関数に属するスレッドが存在するので、この後、関数呼出部502によって関数コール(呼出対象ライブラリ114に属する関数を呼び出すための関数コール)が実行されることになる。
When the number of calls of the own thread is 1 or more, there is a thread that belongs to a function for calling a function that belongs to the call target library 114. Thereafter, a function call (function that belongs to the call target library 114) is performed by the function call unit 502. Function call for calling.
また、ステップS802において、入替指示フラグ402が「OFF」であると判定した場合、即ち、呼出対象ライブラリ114は、入替対象のライブラリ114ではないと判定した場合、前処理部501は、ステップS805の処理を実行することになる。
If it is determined in step S802 that the replacement instruction flag 402 is “OFF”, that is, if it is determined that the call target library 114 is not the replacement target library 114, the preprocessing unit 501 performs the process in step S805. Processing will be executed.
入替指示フラグ402が「OFF」である場合、自スレッドの呼出回数406を判定することなく、この後、関数呼出部502によって関数コール(呼出対象ライブラリ114に属する関数を呼び出すための関数コール)が実行されることになる。
When the replacement instruction flag 402 is “OFF”, a function call (a function call for calling a function belonging to the call target library 114) is subsequently performed by the function calling unit 502 without determining the number of calls 406 of the own thread. Will be executed.
次に、後処理部の処理内容を図9のフローチャートに従って説明する。
Next, the processing content of the post-processing unit will be described with reference to the flowchart of FIG.
関数呼出用マクロ制御部116の後処理部503は、関数呼出部502によって関数を呼び出すための処理が実行されたことを条件に処理を開始し、呼出対象ライブラリ114に対応するライブラリ管理テーブル112のうち入替指示フラグ402のエントリ408に「ON」が格納されているか否かを判定し(S901)、入替指示フラグ402が「ON」である場合には、呼出対象ライブラリ114は、入替対象ライブラリ114であると判定し、自スレッドの呼出回数が1か否かを判定する(S902)。
The post-processing unit 503 of the function call macro control unit 116 starts the process on condition that the function call unit 502 executes the process for calling the function, and stores the function in the library management table 112 corresponding to the call target library 114. It is determined whether or not “ON” is stored in the entry 408 of the replacement instruction flag 402 (S901). If the replacement instruction flag 402 is “ON”, the call target library 114 is replaced with the replacement target library 114. It is determined that the number of calls of the own thread is 1 (S902).
ステップS902において、自スレッドの呼出回数406が1であると判定した場合、後処理部503は、他の全スレッドの呼出回数406が0か否かを判定する(S903)。
If it is determined in step S902 that the number of calls 406 of the own thread is 1, the post-processing unit 503 determines whether the number of calls 406 of all other threads is 0 (S903).
ステップS903において、他の全てのスレッドの呼出回数406が0であると判定した場合、自スレッドの呼出回数406をディクリメントし、例えば、呼出回数406を-1とし(S904)、待機中の入れ替え制御部111に対して、全てのスレッドの呼出回数が0であって、入れ替えが可能である旨の情報を通知し(S905)、このルーチンでの処理を終了する。
If it is determined in step S903 that the number of calls 406 of all other threads is 0, the number of calls 406 of the own thread is decremented, for example, the number of calls 406 is set to -1 (S904), and the waiting replacement is performed. Information indicating that the number of calls of all threads is 0 and replacement is possible is sent to the control unit 111 (S905), and the processing in this routine is terminated.
即ち、自スレッドの呼出回数406が0であって、他の全てのスレッドの呼出回数406が0である場合、呼出対象ライブラリ114に属する関数を呼出対象関数として利用するスレッドが存在しないので、後処理部503は、待機中の入れ替え制御部111に対して、全てのスレッドの呼出回数が0であって、入れ替えが可能である旨の情報を通知する。
That is, when the number of calls 406 of the own thread is 0 and the number of calls 406 of all other threads is 0, there is no thread that uses a function belonging to the call target library 114 as a call target function. The processing unit 503 notifies the standby switching control unit 111 of information indicating that the number of calls of all threads is 0 and switching is possible.
一方、ステップS901、S902、S903において、それぞれ「NO」と判定した場合、後処理部503は、呼出対象ライブラリ114は、入替対象のライブラリ114ではないとして(S901)、あるいは自スレッドの呼出回数406が1ではない(2以上である)として(S902)、また他のスレッドの呼出回数406が0ではないとして(S903)、自スレッドの呼出回数406をディクリメント、例えば、呼出回数406を-1とし(S906)、このルーチンでの処理を終了する。
On the other hand, if “NO” is determined in each of steps S901, S902, and S903, the post-processing unit 503 determines that the call target library 114 is not the replacement target library 114 (S901) or the number of calls 406 of its own thread. Is not 1 (2 or more) (S902), and the call count 406 of another thread is not 0 (S903), the call count 406 of the own thread is decremented, for example, the call count 406 is set to -1. (S906), and the processing in this routine is terminated.
本実施例において、ライブラリ114Aに属する関数115Aが、他のライブラリ114Bに属する関数115Bを呼び出す必要が生じ、関数コールが発行された場合、関数呼出用マクロ制御部116は、関数コールの対象となるライブラリ114Bは、入替対象ライブラリか否かを判定し、関数コールの対象となるライブラリ114Bが、入替対象ライブラリであると判定した場合、入替対象ライブラリに属する呼び出し対象関数115Bを用いるスレッドが存在するか否かを判定し、呼び出し対象関数115Bを用いるスレッドが存在すると判定した場合、呼び出し対象関数115Bを用いる全てのスレッドの処理が完了するまで、入替対象ライブラリを利用するトランザクションの実行を継続し、呼び出し対象関数115Bを用いるスレッドが存在しないと判定した場合、入替対象ライブラリの入れ替えが完了するまで、入替対象ライブラリを利用するトランザクションの実行を一時保留する。
In this embodiment, when the function 115A belonging to the library 114A needs to call the function 115B belonging to the other library 114B and a function call is issued, the function call macro control unit 116 is a target of the function call. The library 114B determines whether or not it is a replacement target library. If it is determined that the library 114B that is the target of the function call is a replacement target library, is there a thread that uses the call target function 115B belonging to the replacement target library? If it is determined that there is a thread using the call target function 115B, the execution of the transaction using the replacement target library is continued until the processing of all threads using the call target function 115B is completed. There is a thread that uses the target function 115B If it is determined that there is not, the execution of the transaction using the replacement target library is temporarily suspended until the replacement of the replacement target library is completed.
この際、入れ替え制御部111は、呼び出し対象関数115Bを用いる全てのスレッドの処理が完了したことを条件に、入替対象ライブラリを新規のライブラリと入れ替えることになる。
At this time, the replacement control unit 111 replaces the replacement target library with a new library on condition that the processing of all threads using the call target function 115B is completed.
本実施例によれば、24時間、365日稼働している計算機システムにおいて、オンラインシステム107を停止することなく、アプリケーションプログラムを入れ替えることができる。
According to this embodiment, the application program can be replaced without stopping the online system 107 in the computer system operating for 24 hours and 365 days.
また、本実施例によれば、長時間トランザクションが実行されても、アプリケーションプログラムを入れ替えることができる。
Further, according to the present embodiment, the application program can be replaced even if a transaction is executed for a long time.
(第2実施例)
本実施例は、計算機141で各計算機101、121、131の負荷の状態を管理し、ライブラリの入れ替えが生じた場合、最も負荷の低い計算機に対してライブラリの入れ替えを指示し、指示された計算機でライブラリの入れ替えを行うものであり、計算機システムの構成は第1実施例と同様である。 (Second embodiment)
In this embodiment, thecomputer 141 manages the load state of each of the computers 101, 121, and 131. When the library is replaced, the computer with the lowest load is instructed to replace the library, and the instructed computer Thus, the library is replaced, and the configuration of the computer system is the same as that of the first embodiment.
本実施例は、計算機141で各計算機101、121、131の負荷の状態を管理し、ライブラリの入れ替えが生じた場合、最も負荷の低い計算機に対してライブラリの入れ替えを指示し、指示された計算機でライブラリの入れ替えを行うものであり、計算機システムの構成は第1実施例と同様である。 (Second embodiment)
In this embodiment, the
次に、図10に、APサーバ管理テーブルの構成を示す。図10において、APサーバ管理テーブル147は、ライブラリ名901と、入替指示フラグ902と、全呼出回数カウンタ格納先903から構成される。
Next, FIG. 10 shows the configuration of the AP server management table. In FIG. 10, the AP server management table 147 includes a library name 901, a replacement instruction flag 902, and a total call count counter storage location 903.
ライブラリ名901の各エントリには、ライブラリ名の情報が格納される。例えば、エントリ904には、ライブラリAの名称として、「Library_A」が格納され、エントリ905には、ライブラリZの名称として、「Library_Z」が格納される。
Each library name 901 entry stores information on the library name. For example, “Library_A” is stored in the entry 904 as the name of the library A, and “Library_Z” is stored in the entry 905 as the name of the library Z.
入替指示フラグ902の各エントリには、ライブラリ114が入替対象のライブラリとなった場合には、「ON」が格納され、ライブラリ114が入替対象でないライブラリとなった場合には、「OFF」が格納される。例えば、エントリ904には、ライブラリAが入替対象ライブラリとして、「ON」が格納され、エントリ905には、ライブラリZが入替対象ライブラリでないとして、「OFF」が格納される。
In each entry of the replacement instruction flag 902, “ON” is stored when the library 114 is a library to be replaced, and “OFF” is stored when the library 114 is a library that is not a replacement target. Is done. For example, “ON” is stored in the entry 904 as the replacement target library, and “OFF” is stored in the entry 905 as the library Z is not the replacement target library.
全呼出回数カウンタ格納先903の各エントリには、各ライブラリ114の格納先を示す情報が格納される。
Information indicating the storage location of each library 114 is stored in each entry of the total call counter storage location 903.
例えば、エントリ904には、ライブラリAの格納先アドレスとして、「格納先アドレス_A」が格納され、エントリ905には、ライブラリZの格納先アドレスとして、「格納先アドレス_Z」が格納される。
For example, the entry 904 stores “storage destination address_A” as the storage destination address of the library A, and the entry 905 stores “storage destination address_Z” as the storage destination address of the library Z. .
また、各格納先アドレスは、APサーバ名911と、全呼出回数カウンタ912と、入替完了フラグ913から構成される。
Each storage destination address includes an AP server name 911, a total call count counter 912, and a replacement completion flag 913.
APサーバ名911のエントリには、APサーバ名の情報が格納される。例えば、エントリ914には、計算機101のAPサーバ名として、「APサーバ_1」が格納され、エントリ915には、nの計算機のAPサーバ名として、「APサーバ_n」が格納される。
The AP server name 911 entry stores information about the AP server name. For example, “AP server_1” is stored as the AP server name of the computer 101 in the entry 914, and “AP server_n” is stored as the AP server name of the n computers in the entry 915.
全呼出回数カウンタ912のエントリには、各APサーバで用いるライブラリが呼び出された回数の情報が数値で格納される。例えば、エントリ914には、計算機101で用いるライブラリAの呼び出し回数が1の場合、「1」が格納され、エントリ915には、nの計算機で用いられるライブラリZの呼び出し回数が0の場合、「0」が格納される。
In the entry of the total number of calls counter 912, information on the number of times the library used in each AP server has been called is stored as a numerical value. For example, the entry 914 stores “1” when the number of calls of the library A used by the computer 101 is 1, and the entry 915 stores “1” when the number of calls of the library Z used by the n computers is 0. “0” is stored.
入替完了フラグ913の各エントリには、各APサーバで用いられるライブラリの入れ替えが完了したか否かを示す情報として、ライブラリの入れ替えが完了した場合には、「ON」が格納され、ライブラリの入れ替えが完了していない場合には、「OFF」が格納される。例えば、エントリ914には、#1のAPサーバとして、ライブラリAの入れ替えが完了していないとして、「OFF」が格納され、エントリ915には、#nのAPサーバについて、ライブラリAの入れ替えが完了していないとして、「OFF」が格納される。
Each entry of the replacement completion flag 913 stores “ON” when the replacement of the library is completed as information indicating whether or not the replacement of the library used in each AP server is completed. If the process is not completed, “OFF” is stored. For example, the entry 914 stores “OFF” as the replacement of the library A as the # 1 AP server is not completed, and the entry 915 completes the replacement of the library A for the #n AP server. “OFF” is stored as not being performed.
次に、図11に、負荷分散システムからAPサーバへのライブラリ入れ替え指示の処理内容を説明するためのブロック図を示す。
Next, FIG. 11 shows a block diagram for explaining the processing contents of a library replacement instruction from the load balancing system to the AP server.
図11において、計算機141のAPサーバライブラリ入れ替え管理部146に、入力装置105からライブラリAの入れ替え指示(A1101)があった場合、APサーバライブラリ入れ替え管理部146は、各APサーバ(各計算機101、121、131)のライブラリ実行状況を参照するために、ライブラリAに対応したAPサーバ管理テーブル147を検索し(A1102)、最も負荷の低いAPサーバとして、例えば、ライブラリAに関する全呼出回数カウンタ912の情報を取得し、最も負荷の低いAPサーバとして、全呼出回数カウンタ912の値が最も低い「APサーバ_3」を選択する。
In FIG. 11, when the AP server library replacement management unit 146 of the computer 141 receives a library A replacement instruction (A1101) from the input device 105, the AP server library replacement management unit 146 selects each AP server (each computer 101, each computer 101, 121, 131), the AP server management table 147 corresponding to the library A is searched (A1102), and the AP server having the lowest load is, for example, the total call count counter 912 for the library A. Information is acquired, and “AP server — 3” having the lowest value of the total call counter 912 is selected as the AP server with the lowest load.
APサーバライブラリ入れ替え管理部146は、最も負荷の低いAPサーバとして、計算機131を選択した場合、計算機131の入れ替え制御部111に対して、ライブラリAの入れ替えを指示する(A1103)。
When the computer 131 is selected as the AP server with the lowest load, the AP server library replacement management unit 146 instructs the replacement control unit 111 of the computer 131 to replace the library A (A1103).
即ち、各計算機101、121、131で、入替対象のライブラリAを含むトランザクションをそれぞれ実行している過程で、入力装置105から、計算機141のAPサーバライブラリ入れ替え管理部146に対してライブラリAの入れ替え指示があった場合、APサーバライブラリ入れ替え管理部146から、最も負荷の低い、計算機131の入れ替え制御部111に対して、ライブラリAの入れ替えを指示することで、計算機131の入れ替え制御部111では、入替対象のライブラリAを含むトランザクションの実行を一時保留した状態でライブラリAの入れ替えを実行することができ、他の計算機101、121では、サービスを停止させることなく、入替対象のライブラリAを含むトランザクションを継続することができる。
That is, the library A is exchanged from the input device 105 to the AP server library exchange management unit 146 of the computer 141 while each computer 101, 121, 131 is executing a transaction including the library A to be replaced. When there is an instruction, the AP server library replacement management unit 146 instructs the replacement control unit 111 of the computer 131 with the lowest load to replace the library A, so that the replacement control unit 111 of the computer 131 The library A can be replaced while the execution of the transaction including the library A to be replaced is temporarily suspended. The other computers 101 and 121 can perform the transaction including the library A to be replaced without stopping the service. Can continue.
次に、計算機141におけるAPサーバライブラリ入れ替え管理ブル146の処理内容を図12のフローチャートに従って説明する。
Next, the processing contents of the AP server library replacement management table 146 in the computer 141 will be described with reference to the flowchart of FIG.
APサーバライブラリ入れ替え管理部146は、オンライン終了、ライブラリ入替、あるいは実行状況通知のイベント待ちの処理を実行し(S1201)、計算機101、121、131のうち、いずれかの計算機からオンライン終了指示があったか否かを判定し(S1202)、いずれかの計算機からオンライン終了指示があった場合には、このルーチンでの処理を終了し、オンライン終了指示がないと判定した場合には、ライブラリ入れ替え指示があるか否かを判定する(S1203)。
The AP server library replacement management unit 146 executes online termination, library replacement, or execution status notification event waiting processing (S1201), and whether any of the computers 101, 121, 131 has received an online termination instruction. (S1202), if there is an online termination instruction from any of the computers, the processing in this routine is terminated. If it is determined that there is no online termination instruction, there is a library replacement instruction. It is determined whether or not (S1203).
S1203でライブラリ入れ替え指示があると判定した場合、APサーバライブラリ入れ替え管理部146は、ライブラリ入れ替え指示に付加された情報(入替対象ライブラリのライブラリ名)を基にAPサーバ管理テーブル147を参照し、入替対象となるライブラリ、例えば、ライブラリAを特定し(S1204)、APサーバ管理テーブル147上の入替対象ライブラリの入替指示フラグ902のエントリに「ON」を書き込む(S1205)。
If it is determined in S1203 that there is a library replacement instruction, the AP server library replacement management unit 146 refers to the AP server management table 147 based on the information (the library name of the replacement target library) added to the library replacement instruction, and performs replacement. A target library, for example, library A is identified (S1204), and “ON” is written in the entry of the replacement instruction flag 902 of the replacement target library on the AP server management table 147 (S1205).
次に、APサーバライブラリ入れ替え管理部146は、APサーバ管理テーブル147のうち、入替完了フラグ913が「OFF」で、且つ全呼出回数カウンタ912の値が最も小さいAPサーバ名911を、最も負荷が低いAPサーバ名として取得し(S1206)、APサーバ名が取得できたか否かを判定する(S1207)。
Next, in the AP server management table 147, the AP server library replacement management unit 146 selects the AP server name 911 having the smallest value of the total call count counter 912 with the replacement completion flag 913 being “OFF” and having the highest load. It is acquired as a lower AP server name (S1206), and it is determined whether or not the AP server name has been acquired (S1207).
S1207で、APサーバ名が取得できたと判定した場合、APサーバライブラリ入れ替え管理部146は、取得したAPサーバ名に対応したAPサーバを処理対象のAPサーバとして、当該APサーバの入れ替え制御部111に対して入れ替えを指示する(S1208)。例えば、#3のAPサーバの全呼出回数カウンタ912が最も小さい値である場合には、APサーバライブラリ入れ替え管理部146は、計算機131を、最も負荷が低い処理対象のAPサーバとして選択し、計算機131の入れ替え制御部111に対して、ライブラリAの入れ替えを指示する。
If it is determined in step S1207 that the AP server name has been acquired, the AP server library replacement management unit 146 sets the AP server corresponding to the acquired AP server name as the processing target AP server, and sends it to the replacement control unit 111 of the AP server. An exchange is instructed (S1208). For example, when the total call counter 912 of the # 3 AP server has the smallest value, the AP server library replacement management unit 146 selects the computer 131 as the processing target AP server with the lowest load, and the computer The exchange control unit 111 of 131 is instructed to exchange the library A.
次に、APサーバライブラリ入れ替え管理部146は、処理対象のAPサーバの入れ替え管理部111からの入れ替え完了待ちの処理を行い(S1209)、入れ替え管理部111から、例えば、ライブラリAの入れ替え完了の通知があったことを条件に、APサーバ管理テーブル147のうち処理対象のAPサーバに対応した入替完了フラグ913のエントリに「ON」を書き込む(S1210)。例えば、APサーバライブラリ入れ替え管理部146は、入替完了フラグ913のうち、計算機131に対応したエントリ916に「ON」を書き込む。
Next, the AP server library replacement management unit 146 performs processing of waiting for replacement completion from the replacement management unit 111 of the processing target AP server (S1209), and the replacement management unit 111 notifies, for example, completion of replacement of the library A. On the condition that there is, “ON” is written in the entry of the replacement completion flag 913 corresponding to the processing target AP server in the AP server management table 147 (S1210). For example, the AP server library replacement management unit 146 writes “ON” in the entry 916 corresponding to the computer 131 in the replacement completion flag 913.
この後、APサーバライブラリ入れ替え管理部146は、ステップS1206に戻り、S1206~S1212の処理を繰り返す。
Thereafter, the AP server library replacement management unit 146 returns to step S1206 and repeats the processing of S1206 to S1212.
一方、S1207でサーバ名を取得できないと判定した場合、APサーバライブラリ入れ替え管理部146は、ライブラリAの入れ替えが完了したとして、APサーバ管理テーブル147のうち全てのAPサーバの入替完了フラグ913のエントリにそれぞれ「OFF」を書き込み(S1211)、APサーバ管理テーブル147の入替指示フラグ902のエントリのうち、ライブラリAに対応したエントリ904に「OFF」を書き込み、この後、ステップS1201の処理に戻り、ステップS1201~S1212の処理を繰り返す。
On the other hand, if it is determined in S1207 that the server name cannot be acquired, the AP server library replacement management unit 146 determines that the replacement of the library A has been completed, and the entry of the replacement completion flag 913 of all AP servers in the AP server management table 147 is completed. "OFF" is written to each of them (S1211), and "OFF" is written to the entry 904 corresponding to the library A among the entries of the replacement instruction flag 902 of the AP server management table 147, and then the processing returns to the step S1201. The processes in steps S1201 to S1212 are repeated.
また、S1203でライブラリの入れ替え指示ではないと判定した場合、APサーバライブラリ入れ替え管理部146は、ライブラリ実行状況通知の指示としてAPサーバ管理テーブル147を参照し、APサーバ管理テーブル147の入替対象ライブラリの全呼出回数カウンタ912を更新し(S1213)、その後、ステップS1201に戻り、ステップS1201~S1213の処理を繰り返す。
If it is determined in step S1203 that the instruction is not a library replacement instruction, the AP server library replacement management unit 146 refers to the AP server management table 147 as a library execution status notification instruction, and determines the replacement target library in the AP server management table 147. The total number-of-calls counter 912 is updated (S1213), and then the process returns to step S1201 to repeat the processes of steps S1201 to S1213.
各計算機101、121、131で、入替対象のライブラリAを含むトランザクションをそれぞれ実行している過程で、ライブラリAの入れ替え指示があった場合、APサーバライブラリ入れ替え管理部146から、最も負荷の低い、計算機131の入れ替え制御部111に対して、ライブラリAの入れ替えを指示することで、計算機131の入れ替え制御部111では、入替対象のライブラリAを含むトランザクションの実行を一時保留した状態でライブラリAの入れ替えを実行することができ、他の計算機101、121では、サービスを停止させることなく、入替対象のライブラリAを含むトランザクションを継続することができる。
In the process of executing the transaction including the replacement target library A in each of the computers 101, 121, 131, when there is an instruction to replace the library A, the AP server library replacement management unit 146 has the lowest load. By instructing the replacement control unit 111 of the computer 131 to replace the library A, the replacement control unit 111 of the computer 131 replaces the library A in a state where the execution of the transaction including the library A to be replaced is temporarily suspended. The other computers 101 and 121 can continue the transaction including the library A to be replaced without stopping the service.
次に、ライブラリ実行状況通知部の処理内容を図13のフローチャートに従って説明する。
Next, the processing contents of the library execution status notification unit will be described with reference to the flowchart of FIG.
ライブラリ実行状況通知部113は、ユーザ指定の間隔、例えば、10秒間隔で起動し(S1301)、ライブラリ管理テーブル112の呼出回数カウンタ403の情報をネットワーク151を介して、計算機141のAPサーバライブラリ入れ替え管理部146へ通知し(S1302)、計算機141からオンライン終了指示があるか否かを判定し(S1303)、オンライン終了指示がある場合には、このルーチンでの処理を終了し、オンライン終了指示がないと判定した場合には、ステップS1301~S1303の処理を繰り返す。
The library execution status notifying unit 113 is activated at a user-specified interval, for example, at an interval of 10 seconds (S1301), and the information on the call count counter 403 in the library management table 112 is replaced with the AP server library of the computer 141 via the network 151. The management unit 146 is notified (S1302), and it is determined whether or not there is an online termination instruction from the computer 141 (S1303). If there is an online termination instruction, the processing in this routine is terminated and an online termination instruction is issued. If it is determined that there is not, the processes in steps S1301 to S1303 are repeated.
これにより、ライブラリ実行状況通知部113は、10秒間隔でライブラリ管理テーブル112の呼出回数403の情報をAPサーバライブラリ入れ替え管理部146に通知することができる。
Thereby, the library execution status notification unit 113 can notify the AP server library replacement management unit 146 of the information on the number of calls 403 in the library management table 112 at intervals of 10 seconds.
本実施例において、計算機141は、計算機101、121、131で用いるアプリケーションプログラムを入れ替える場合、計算機101、121、131のうち負荷の最も低い計算機131を選択し、選択した計算機131の入れ替え制御部111にアプリケーションプログラムの入れ替えを指示し、アプリケーションプログラムの入れ替えを指示された計算機131に属する関数呼出用マクロ制御部116は、アプリケーションプログラムのトランザクションの実行を一時保留し、計算機131に属する入れ替え制御部111は、アプリケーションプログラムのトランザクションの実行が一時保留されていることを条件に、アプリケーションプログラムの入れ替えを実行する。
In this embodiment, when replacing the application program used in the computers 101, 121, 131, the computer 141 selects the computer 131 having the lowest load among the computers 101, 121, 131, and the replacement control unit 111 of the selected computer 131. The function call macro control unit 116 belonging to the computer 131 instructed to replace the application program temporarily suspends execution of the transaction of the application program, and the replacement control unit 111 belonging to the computer 131 The application program is replaced on condition that the execution of the application program transaction is temporarily suspended.
一方、アプリケーションプログラムの入れ替えを指示されない他の計算機101、121に属する関数呼出用マクロ制御部116は、サービスを停止させることなく、アプリケーションプログラムのトランザクションの実行を継続することになる。
On the other hand, the function call macro control unit 116 belonging to the other computers 101 and 121 not instructed to replace the application program continues to execute the transaction of the application program without stopping the service.
本実施例によれば、24時間、365日稼働している計算機システムにおいて、オンラインシステム107やサービスを一切停止することなく、アプリケーションプログラムを入れ替えることができる。
According to the present embodiment, in a computer system operating for 24 hours and 365 days, the application program can be replaced without stopping the online system 107 or service at all.
また、本実施例によれば、長時間トランザクションが実行されても、アプリケーションプログラムを入れ替えることができる。
Further, according to the present embodiment, the application program can be replaced even if a transaction is executed for a long time.
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
In addition, this invention is not limited to the above-mentioned Example, Various modifications are included. For example, the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described. Further, a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment. Further, it is possible to add, delete, and replace other configurations for a part of the configuration of each embodiment.
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、IC(Integrated Circuit)カード、SD(Secure Digital)メモリカード、DVD(Digital Versatile Disc)等の記録媒体に記録して置くことができる。
Each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit. Each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the processor. Information such as programs, tables, and files that realize each function is stored in memory, a hard disk, a recording device such as an SSD (Solid State Drive), an IC (Integrated Circuit) card, an SD (Secure Digital) memory card, a DVD ( It can be recorded on a recording medium such as Digital Versatile Disc).
101、121、131、141 計算機、102 主記憶装置、103 CPU、104 補助記憶装置、105 入力装置、106 出力装置、107 オンラインシステム、108 オペレーティングシステム、109 ライブラリ管理部、110 ライブラリ群、111 入れ替え制御部、112 ライブラリ管理テーブル、113 ライブラリ実行状況通知部、114 ライブラリ、115 関数、116 関数呼出用マクロ制御部、142 CPU、143 主記憶装置、144 補助記憶装置、145 負荷分散システム、146 APサーバライブラリ入れ替え管理部、147 APサーバ管理テーブル。
101, 121, 131, 141 computer, 102 main storage device, 103 CPU, 104 auxiliary storage device, 105 input device, 106 output device, 107 online system, 108 operating system, 109 library management unit, 110 library group, 111 replacement control Part, 112 library management table, 113 library execution status notifying part, 114 library, 115 function, 116 function call macro control part, 142 CPU, 143 main storage device, 144 auxiliary storage device, 145 load distribution system, 146 AP server library Replacement management unit, 147 AP server management table.
Claims (16)
- 複数の処理用計算機と、前記複数の処理用計算機とネットワークを介して情報の授受を行って、前記複数の処理用計算機の処理状態を管理する管理用計算機とを有する計算機システムであって、
前記各処理用計算機は、
プログラムのトランザクションを実行する過程で、関数コールを発行する関数コール発行部と、前記関数コールの対象を利用するスレッドの状態に応じて前記トランザクションの実行を制御するマクロ制御部と、前記マクロ制御部の制御結果を基に前記プログラムを新規のプログラムと入れ替える入れ替え制御部とから構成されてなることを特徴とする計算機システム。 A computer system comprising a plurality of processing computers, and a management computer that manages the processing state of the plurality of processing computers by exchanging information with the plurality of processing computers via a network,
Each of the processing computers is
In the course of executing a program transaction, a function call issuing unit that issues a function call, a macro control unit that controls the execution of the transaction according to the state of a thread that uses the target of the function call, and the macro control unit A computer system comprising: an exchange control unit for exchanging the program with a new program based on the control result. - 請求項1に記載の計算機システムであって、
前記管理用計算機は、前記複数の処理用計算機で用いる前記プログラムを入れ替える場合、前記複数の処理用計算機のうち負荷の最も低い処理用計算機を選択し、前記選択した処理用計算機に前記プログラムの入れ替えを指示し、
前記複数の処理用計算機のうち前記プログラムの入れ替えを指示された処理用計算機に属する前記マクロ制御部は、前記プログラムのトランザクションの実行を一時保留し、前記プログラムの入れ替えを指示された処理用計算機に属する前記入れ替え制御部は、前記プログラムのトランザクションの実行が一時保留されていることを条件に前記プログラムの入れ替えを実行し、前記複数の処理用計算機のうち前記プログラムの入れ替えを指示されない他の処理用計算機に属する前記マクロ制御部は、前記プログラムのトランザクションの実行を継続することを特徴とする計算機システム。 The computer system according to claim 1,
When the management computer replaces the program used by the plurality of processing computers, the management computer selects the processing computer having the lowest load from the plurality of processing computers, and replaces the program with the selected processing computer. Instruct
The macro control unit belonging to the processing computer instructed to replace the program among the plurality of processing computers temporarily suspends execution of the transaction of the program, and the processing computer instructed to replace the program The replacement control unit to which the replacement control unit executes the replacement of the program on the condition that the execution of the transaction of the program is temporarily suspended, and is used for other processing that is not instructed to replace the program among the plurality of processing computers The computer system according to claim 1, wherein the macro control unit belonging to the computer continues to execute the transaction of the program. - 請求項2に記載の計算機システムであって、
前記プログラムの入れ替えを指示された処理用計算機に属する前記マクロ制御部は、前記プログラムの入れ替えを指示された処理用計算機に属する前記入れ替え制御部が、前記プログラムの入れ替えを完了したことを条件に、前記一時保留していた前記プログラムのトランザクションの実行を再開することを特徴とする計算機システム。 The computer system according to claim 2,
The macro control unit belonging to the processing computer instructed to replace the program is subject to the condition that the replacement control unit belonging to the processing computer instructed to replace the program has completed the replacement of the program. A computer system that resumes execution of a transaction of the program that has been temporarily suspended. - 請求項2に記載の計算機システムであって、
前記複数の処理用計算機は、前記各処理用計算機の負荷の状態を前記ネットワークを介して前記管理用計算機に通知する通知部を有することを特徴とする計算機システム。 The computer system according to claim 2,
The plurality of processing computers have a notification unit that notifies the management computer of the load state of each processing computer via the network. - 請求項1、2、3、4のうちいずれか1項に記載の計算機システムであって、
前記プログラムは、複数のライブラリから構成され、前記複数のライブラリはそれぞれ複数の関数から構成され、
前記関数コール発行部は、前記複数のライブラリを含むプログラムのトランザクションを実行する過程で、前記複数のライブラリのうちいずれかのライブラリに属する関数が他のライブラリに属する関数を利用する場合、前記関数コールを発行し、前記マクロ制御部は、前記関数コールの対象となる呼び出し対象関数を利用するスレッドの状態に応じて前記トランザクションの実行を制御し、前記入れ替え制御部は、前記マクロ制御部の制御結果を基に前記複数のライブラリのうち入替対象ライブラリを新規のライブラリと入れ替えることを特徴とする計算機システム。 The computer system according to any one of claims 1, 2, 3, and 4,
The program is composed of a plurality of libraries, each of the plurality of libraries is composed of a plurality of functions,
The function call issuing unit is configured to execute the function call when a function belonging to any one of the plurality of libraries uses a function belonging to another library in a process of executing a transaction of a program including the plurality of libraries. The macro control unit controls execution of the transaction according to a state of a thread that uses the call target function that is a target of the function call, and the replacement control unit is a control result of the macro control unit. A computer system characterized in that a replacement target library is replaced with a new library among the plurality of libraries. - 請求項5項に記載の計算機システムであって、
前記関数コール発行部は、前記複数のライブラリのうちいずれかのライブラリに属する関数が、他のライブラリに属する関数を呼び出し対象関数として呼び出す必要が生じた場合、前記呼び出し対象関数を呼び出すための関数コールを発行し、前記マクロ制御部は、前記関数コール発行部から前記関数コールが発行された場合、前記関数コールの対象となるライブラリは、入替対象ライブラリか否かを判定し、前記関数コールの対象となるライブラリが、前記入替対象ライブラリであると判定した場合、前記入替対象ライブラリに属する前記呼び出し対象関数を用いるスレッドが存在するか否かを判定し、前記スレッドが存在するか否かの判定結果を基に前記入替対象ライブラリを利用するトランザクションの実行を継続するか又は前記入替対象ライブラリの入れ替えが完了するまで、前記入替対象ライブラリを利用するトランザクションの実行を一時保留することを特徴とする計算機システム。 The computer system according to claim 5,
The function call issuing unit, when a function belonging to any one of the plurality of libraries needs to call a function belonging to another library as a call target function, calls a function call for calling the call target function When the function call is issued from the function call issuing unit, the macro control unit determines whether the library that is the target of the function call is a replacement target library, and the target of the function call When it is determined that the library to be replaced is the replacement target library, it is determined whether there is a thread that uses the call target function belonging to the replacement target library, and a determination result of whether the thread exists Continue to execute the transaction that uses the replacement target library based on the Computer system, characterized in that the replacement of elephants library to complete, temporarily holds the execution of transactions utilizing the replacement target library. - 請求項6項に記載の計算機システムであって、
前記マクロ制御部は、前記呼び出し対象関数を用いるスレッドが存在すると判定した場合、前記呼び出し対象関数を用いる全てのスレッドの処理が完了するまで、前記入替対象ライブラリを利用するトランザクションの実行を継続し、前記呼び出し対象関数を用いるスレッドが存在しないと判定した場合、前記入替対象ライブラリの入れ替えが完了するまで、前記入替対象ライブラリを利用するトランザクションの実行を一時保留し、前記入れ替え制御部は、前記呼び出し対象関数を用いる全てのスレッドの処理が完了したことを条件に、前記入替対象ライブラリを新規のライブラリと入れ替えることを特徴とする計算機システム。 The computer system according to claim 6,
When the macro control unit determines that there is a thread that uses the call target function, the macro control unit continues execution of the transaction that uses the replacement target library until processing of all the threads that use the call target function is completed, When it is determined that there is no thread that uses the call target function, the execution of the transaction using the replacement target library is temporarily suspended until the replacement of the replacement target library is completed, and the replacement control unit A computer system characterized in that the replacement object library is replaced with a new library on condition that processing of all threads using the function is completed. - 請求項7項に記載の計算機システムであって、
前記マクロ制御部は、前記呼び出し対象関数を用いる全てのスレッドの処理が完了した場合、前記呼び出し対象関数を用いる全てのスレッドの処理が完了したことを前記入れ替え制御部に通知することを特徴とする計算機システム。 The computer system according to claim 7,
When the processing of all threads using the call target function is completed, the macro control unit notifies the replacement control unit that the processing of all threads using the call target function is completed. Computer system. - 請求項6項に記載の計算機システムであって、
前記マクロ制御部は、前記関数コールの対象となるライブラリが、前記入替対象ライブラリでないと判定した場合、前記関数コールの対象となるライブラリに属する関数を前記呼び出し対象関数から呼び出し、前記呼び出し関数を利用するスレッドの処理を実行するとともに、前記トランザクションを実行することを特徴とする計算機システム。 The computer system according to claim 6,
When the macro control unit determines that the library that is the target of the function call is not the replacement target library, the macro control unit calls the function belonging to the library that is the target of the function call from the call target function, and uses the call function A computer system characterized by executing processing of a thread to execute and executing the transaction. - 複数の処理用計算機と、前記複数の処理用計算機とネットワークを介して情報の授受を行って、前記複数の処理用計算機の処理状態を管理する管理用計算機とを有し、前記各処理用計算機は、プログラムのトランザクションを実行する過程で、関数コールを発行する関数コール発行部と、前記関数コールの対象を利用するスレッドの状態に応じて前記トランザクションの実行を制御するマクロ制御部と、前記マクロ制御部の制御結果を基に前記プログラムを新規のプログラムと入れ替える入れ替え制御部とから構成される計算機システムのプログラム入替方法であって、
前記管理用計算機が、前記複数の処理用計算機で用いる前記プログラムを入れ替える場合、前記複数の処理用計算機のうち負荷の最も低い処理用計算機を選択するステップと、
前記管理用計算機が、前記選択した処理用計算機に前記プログラムの入れ替えを指示するステップと、
前記複数の処理用計算機のうち前記プログラムの入れ替えを指示された処理用計算機に属する前記マクロ制御部が、前記プログラムのトランザクションの実行を一時保留するステップと、
前記プログラムの入れ替えを指示された処理用計算機に属する前記入れ替え制御部が、前記プログラムのトランザクションの実行が一時保留されていることを条件に前記プログラムの入れ替えを実行するステップと、
前記複数の処理用計算機のうち前記プログラムの入れ替えを指示されない他の処理用計算機に属する前記マクロ制御部が、前記プログラムのトランザクションの実行を継続するステップと、を含むことを特徴とする計算機システムのプログラム入替方法。 A plurality of processing computers; and a management computer that manages the processing state of the plurality of processing computers by exchanging information with the plurality of processing computers via a network, and each of the processing computers A function call issuing unit that issues a function call in a process of executing a program transaction, a macro control unit that controls execution of the transaction according to a state of a thread that uses a target of the function call, and the macro A computer system program replacement method comprising a replacement control unit that replaces the program with a new program based on the control result of the control unit,
When the management computer replaces the program used in the plurality of processing computers, selecting the processing computer with the lowest load among the plurality of processing computers;
The management computer instructing the selected processing computer to replace the program;
The macro control unit belonging to the processing computer instructed to replace the program among the plurality of processing computers, temporarily suspending execution of the transaction of the program;
The replacement control unit belonging to the processing computer instructed to replace the program executes the replacement of the program on the condition that execution of the transaction of the program is temporarily suspended; and
The macro control unit belonging to another processing computer that is not instructed to replace the program among the plurality of processing computers, and the step of continuing execution of the transaction of the program, Program replacement method. - 請求項10に記載の計算機システムのプログラム入替方法であって、
前記プログラムの入れ替えを指示された処理用計算機に属する前記マクロ制御部が、前記プログラムの入れ替えを指示された処理用計算機に属する前記入れ替え制御部が前記プログラムの入れ替えを完了したことを条件に、前記一時保留していた前記プログラムのトランザクションの実行を再開するステップを含むことを特徴とする計算機システムのプログラム入替方法。 A computer system program replacement method according to claim 10, comprising:
The macro control unit belonging to the processing computer instructed to replace the program is subject to the condition that the replacement control unit belonging to the processing computer instructed to replace the program has completed the replacement of the program. A program replacement method for a computer system, comprising the step of resuming execution of a transaction of the program that has been temporarily suspended. - 請求項10に記載の計算機システムのプログラム入替方法であって、
前記プログラムは、複数のライブラリから構成され、前記複数のライブラリはそれぞれ複数の関数から構成され、
前記関数コール発行部が、前記複数のライブラリを含むプログラムのトランザクションを実行する過程で、前記複数のライブラリのうちいずれかのライブラリに属する関数が他のライブラリに属する関数を利用する場合、前記関数コールを発行するステップと、
前記マクロ制御部が、前記関数コールの対象となる呼び出し対象関数を利用するスレッドの状態に応じて前記トランザクションの実行を制御するステップと、
前記入れ替え制御部が、前記マクロ制御部の制御結果を基に前記複数のライブラリのうち入替対象ライブラリを新規のライブラリと入れ替えるステップと、を含むことを特徴とする計算機システムのプログラム入替方法。 A computer system program replacement method according to claim 10, comprising:
The program is composed of a plurality of libraries, each of the plurality of libraries is composed of a plurality of functions,
If the function belonging to one of the plurality of libraries uses a function belonging to another library in the process of executing a transaction of a program including the plurality of libraries, the function call issuing unit A step of issuing
The macro control unit controls execution of the transaction according to a state of a thread that uses a function to be called that is a target of the function call;
A program replacement method for a computer system, comprising: a step of replacing the replacement target library with a new library among the plurality of libraries based on a control result of the macro control unit. - 請求項12に記載の計算機システムのプログラム入替方法であって、
前記関数コール発行部が、前記複数のライブラリのうちいずれかのライブラリに属する関数が他のライブラリに属する関数を呼び出し対象関数として呼び出す必要が生じた場合、前記呼び出し対象関数を呼び出すための関数コールを発行するステップと、
前記マクロ制御部が、前記関数コール発行部から前記関数コールが発行された場合、前記関数コールの対象となるライブラリは、入替対象ライブラリか否かを判定するステップと、
前記マクロ制御部が、前記関数コールの対象となるライブラリが、前記入替対象ライブラリであると判定した場合、前記入替対象ライブラリに属する前記呼び出し対象関数を用いるスレッドが存在するか否かを判定するステップと、
前記マクロ制御部が、前記スレッドが存在するか否かの判定結果を基に前記入替対象ライブラリを利用するトランザクションの実行を継続するか又は前記入替対象ライブラリの入れ替えが完了するまで、前記入替対象ライブラリを利用するトランザクションの実行を一時保留するステップと、を含むことを特徴とする計算機システムのプログラム入替方法。 A computer system program replacement method according to claim 12, comprising:
If the function call issuing unit needs to call a function belonging to one of the plurality of libraries as a call target function, a function call for calling the call target function is generated. Issuing step;
When the macro control unit issues the function call from the function call issuing unit, determining whether the library that is the target of the function call is a replacement target library;
When the macro control unit determines that the library that is the target of the function call is the replacement target library, a step of determining whether or not there is a thread that uses the call target function belonging to the replacement target library When,
The replacement target library until the macro control unit continues execution of a transaction using the replacement target library based on a determination result of whether or not the thread exists or until the replacement of the replacement target library is completed. A program replacement method for a computer system, comprising: temporarily suspending execution of a transaction that uses a computer. - 請求項13に記載の計算機システムのプログラム入替方法であって、
前記マクロ制御部が、前記呼び出し対象関数を用いるスレッドが存在すると判定した場合、前記呼び出し対象関数を用いる全てのスレッドの処理が完了するまで、前記入替対象ライブラリを利用するトランザクションの実行を継続するステップと、
前記マクロ制御部が、前記呼び出し対象関数を用いるスレッドが存在しないと判定した場合、前記入替対象ライブラリの入れ替えが完了するまで、前記入替対象ライブラリを利用するトランザクションの実行を一時保留するステップと、
前記入れ替え制御部が、前記呼び出し対象関数を用いる全てのスレッドの処理が完了したことを条件に、前記入替対象ライブラリを新規のライブラリと入れ替えるステップと、を含むことを特徴とする計算機システムのプログラム入替方法。 A computer system program replacement method according to claim 13,
When the macro control unit determines that there is a thread that uses the call target function, the step of continuing the execution of the transaction that uses the replacement target library until the processing of all the threads that use the call target function is completed. When,
If the macro control unit determines that there is no thread using the call target function, temporarily suspending execution of a transaction using the replacement target library until the replacement target library is completely replaced;
The replacement control unit includes a step of replacing the replacement target library with a new library on condition that the processing of all threads using the call target function is completed. Method. - 請求項12に記載の計算機システムのプログラム入替方法であって、
前記マクロ制御部が、前記関数コールの対象となるライブラリが前記入替対象ライブラリでないと判定した場合、前記関数コールの対象となるライブラリに属する関数を前記呼び出し対象関数から呼び出すステップと、
前記マクロ制御部が、前記呼び出し関数を利用するスレッドの処理を実行するとともに、前記トランザクションを実行するステップと、を含むことを特徴とする計算機システムのプログラム入替方法。 A computer system program replacement method according to claim 12, comprising:
When the macro control unit determines that the library that is the target of the function call is not the replacement target library, a step of calling a function belonging to the library that is the target of the function call from the call target function;
A program replacement method for a computer system, comprising: a step of executing processing of a thread that uses the calling function, and executing the transaction. - 複数の処理用計算機と、前記複数の処理用計算機とネットワークを介して情報の授受を行って、前記複数の処理用計算機の処理状態を管理する管理用計算機にそれぞれ機能を実現させるためのプログラム入替処理プログラムであって、
前記各処理用計算機に、
プログラムのトランザクションを実行する過程で、関数コールを発行する機能と、
前記関数コールの対象を利用するスレッドの状態に応じて前記トランザクションの実行を制御する機能と、
前記制御結果を基に前記プログラムを新規のプログラムと入れ替える機能と、
を実現させ、
前記管理用計算機に、
前記複数の処理用計算機のうち負荷の最も低い処理用計算機を選択する機能と、
前記選択した処理用計算機に前記プログラムの入れ替えを指示する機能と、
を実現させ、
前記プログラムの入れ替えを指示された処理用計算機に、
前記プログラムのトランザクションの実行を一時保留する機能と、
前記プログラムのトランザクションの実行が一時保留されていることを条件に前記プログラムの入れ替えを実行する機能と、
を実現させ、
前記プログラムの入れ替えを指示されない他の処理用計算機に、
前記プログラムのトランザクションの実行を継続する機能を
実現させることを特徴とするプログラム入替処理プログラム。 Program replacement for realizing a function in each of a plurality of processing computers and a management computer for exchanging information with the plurality of processing computers via a network and managing a processing state of the plurality of processing computers A processing program,
In each processing computer,
A function that issues a function call in the course of executing a program transaction;
A function for controlling the execution of the transaction according to the state of a thread that uses the target of the function call;
A function of replacing the program with a new program based on the control result;
Realized,
In the management computer,
A function of selecting a processing computer having the lowest load among the plurality of processing computers;
A function for instructing the selected processing computer to replace the program;
Realized,
To the processing computer instructed to replace the program,
A function to temporarily suspend execution of a transaction of the program;
A function of executing replacement of the program on condition that execution of the transaction of the program is temporarily suspended;
Realized,
To other processing computers not instructed to replace the program,
A program replacement processing program for realizing a function of continuing execution of a transaction of the program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/006836 WO2012070081A1 (en) | 2010-11-24 | 2010-11-24 | Computer system, computer system program replacement method, and program replacement processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/006836 WO2012070081A1 (en) | 2010-11-24 | 2010-11-24 | Computer system, computer system program replacement method, and program replacement processing program |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012070081A1 true WO2012070081A1 (en) | 2012-05-31 |
Family
ID=46145460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2010/006836 WO2012070081A1 (en) | 2010-11-24 | 2010-11-24 | Computer system, computer system program replacement method, and program replacement processing program |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2012070081A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07152551A (en) * | 1993-11-30 | 1995-06-16 | Toshiba Corp | Computer system and program executing method |
JP2006277047A (en) * | 2005-03-28 | 2006-10-12 | Nec Corp | Data processing device and dynamic substitution method of application program in multithread system |
JP2010250749A (en) * | 2009-04-20 | 2010-11-04 | Hitachi Software Eng Co Ltd | Patch application system |
-
2010
- 2010-11-24 WO PCT/JP2010/006836 patent/WO2012070081A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07152551A (en) * | 1993-11-30 | 1995-06-16 | Toshiba Corp | Computer system and program executing method |
JP2006277047A (en) * | 2005-03-28 | 2006-10-12 | Nec Corp | Data processing device and dynamic substitution method of application program in multithread system |
JP2010250749A (en) * | 2009-04-20 | 2010-11-04 | Hitachi Software Eng Co Ltd | Patch application system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10873623B2 (en) | Dynamically modifying a cluster of computing nodes used for distributed execution of a program | |
US8321558B1 (en) | Dynamically monitoring and modifying distributed execution of programs | |
US11263084B2 (en) | Saving program execution state | |
US8260840B1 (en) | Dynamic scaling of a cluster of computing nodes used for distributed execution of a program | |
US8935698B2 (en) | Management of migrating threads within a computing environment to transform multiple threading mode processors to single thread mode processors | |
US9276987B1 (en) | Identifying nodes already storing indicated input data to perform distributed execution of an indicated program in a node cluster | |
US8046632B2 (en) | Backup management method based on mode of failure | |
US7653784B2 (en) | Management computer, power supply control method and computer system | |
WO2016199232A1 (en) | Storage management computer and management method for storage device | |
JP4327831B2 (en) | Storage system, management computer and copy pair monitoring method | |
JP5589218B2 (en) | Computer system and management computer | |
WO2016030973A1 (en) | Multi-tenant resource coordination method | |
JP2005275829A (en) | Storage system | |
US20150234618A1 (en) | Storage management computer, storage management method, and storage system | |
US10977089B2 (en) | Fusing and unfusing operators during a job overlay | |
US20110029930A1 (en) | Distributed processing device and distributed processing method | |
JP5614491B2 (en) | Command control method and command control program | |
US10019182B2 (en) | Management system and management method of computer system | |
WO2015145598A1 (en) | Data distribution device for parallel operation processing system, data distribution method, and data distribution program | |
TWI608377B (en) | Monitoring management systems and methods | |
US20140068214A1 (en) | Information processing apparatus and copy control method | |
CN102576294A (en) | Storage system, method, and program, comprising a plurality of storage devices | |
US20170351715A1 (en) | Determining an importance characteristic for a data set | |
WO2012070081A1 (en) | Computer system, computer system program replacement method, and program replacement processing program | |
JP2012198671A (en) | System management device, system management method and system management program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 10860055 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 10860055 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |