這是SAP PI的要求,如何保存使用Java
- 源系統數據庫中的線程實例:XY_Client
- 中間件:PI系統
- 目標系統:SAP
的將XML文件接收到PI系統,爲每個XML文件生成一個內部文件以跟蹤store_number和xml文件的數量。
工作原理:假設XML_FILE_1達到PI,創建了名爲sequence_gen的內部文件。該文件包含如果XML_FILE_2達到P1,第二時間存在於XML文件和計數店號將被初始化爲1。 所以首次
sequence_gen file contains Store: 1001 Count:1
(一段時間間隔之後),
sequence_gen file contains Store: 1001 Count:2
依此類推。
我的問題是:如果'n'個文件同時到達PI系統,第一個文件將鎖定sequence_gen文件。那麼第二個文件如何將值更新到sequence_gen文件?那麼如何解決這個問題呢?
我想爲每個調用創建一個線程實例並將其存儲在數據庫中。並檢索每個實例,執行函數,將結果返回給xml調用並刪除該實例。是否有可能?如何前進呢?
究竟是什麼問題?據我瞭解,在文件1完成處理之後,系統將簡單地轉向file2(或者同時發生的任何事情)。這是異步處理和鎖定的基礎。 – Buurman
@ Buurman-假設如果100個文件同時出現't0'..所有100個文件將嘗試訪問sequence_gen文件。所以不會移動到鎖定狀態?將更新值保留在sequence_gen文件中? – madhu
我對你使用的具體應用程序一無所知,所以我不能評論他們的行爲,但是: 一般來說,如果你有一些對象/序列/無論什麼是線程安全的,那麼是的,它會鎖定修改和它會在修改成功後解鎖。然後它將包含新狀態,並且下一個文件到來,並可以按照序列的新狀態繼續處理。這是基本的併發性。 你真的試過你的方案,看看它是否正確嗎? – Buurman