home recent topics recent posts search faq  

Schaudin.com Forum



register | lost password | |
Messages in this topic - RSS

Home » RC-WinTrans Support » Executing RCWinTrans 11 in parallel throws error

For support issues and specific questions related to RC-WinTrans' use, features and functions.
05.09.2017 11:10:14

johannes
johannes
Posts: 8
Hello,

our goal is to run RCWinTrans in parallel. Therefore, we were very pleased that the Release Notes of version 11 listed the following feature:

"Multiple instances of RC-WinTrans 11 can be started. Prior to this only one instance of RC-WinTrans could be used at a time."

We start the translation with the following commands:

"RCWinTrans /Update /proj %PROJPATH% /long %TGTLANG% /log %LOGFILE%"
"RCWinTrans /WriteTargetFile /proj %PROJPATH% /long %TGTLANG% /log %LOGFILE%"

If I run the rwtproject file commands one after the other, everything works without a problem. However, if I run more than 2 in parallel, the process aborts and the following error message appears in the log file:
"User break: premature end.
Error (404): The converter "NETFilesConverter. ConvNetAsm. XliffToFormatFile" returned exit code 53.
Error (105): The source file has changed. The target file "********. dll" cannot be written."

Are there known issues with this procedure? Is there any resources that cannot be accessed at the same time?

Thanks,
Johannes
0 permalink
06.09.2017 22:59:13

Support
Support
Administrator
Posts: 210
Hello Johannes,

> Are there known issues with this procedure?
No.


Note: A project database supports only single user access.
Maybe the problem comes by processing the project by multiple processes at the same time?




More specific for the error output...

> Error (404): The converter "NETFilesConverter. ConvNetAsm. XliffToFormatFile" returned exit code 53
>
This is the RC-WinTrans module which is processing (reading/writing) .NET assemblies. The function "ConvNetAsm" fails and returns with an error.
Could be a problem with loading one of your source files (a .NET assembly) (source file to be translated)
twice (by a second process). Maybe this failed at this time (?).


This are my first ideas.


Regards,
Support, Schaudin.com
0 permalink
07.09.2017 12:45:37

johannes
johannes
Posts: 8
Hi,

thanks for your answer. For us, parallel execution is very important and would be a strong argument to upgrade from version 9, for which we have a license to the new version 11. At the moment we are still testing version 11 with the Demo version.
We can rule out the possibility of multiple processes running the same projects.
As far as we know, RCWinTrans uses system tools to convert from BAML to XAML. Could one of these tools cause ConvNetAsm to fail?

If it's helpful, here's our PowerShell script that we use to call all rwtproject files from a folder in parallel. The actual script is limited that only a maximum of four projects are processed at the same time, but this code snippet is to get you the idea of what we're doing:

Get-ChildItem "C:\RCWinTrans" -Filter *.rwtproject |
ForEach-Object {
Start-Job -ScriptBlock {
Start-Process RCWinTrans-Demo.exe -ArgumentList "/Update", "/proj", $args[0], "/lang", "de", "/log", $("C:\RCWinTrans\RCWinTrans_" + [System.IO.Path]::GetFileNameWithoutExtension($args[0]) + ".log") -Wait
Start-Process RCWinTrans-Demo.exe -ArgumentList "/WriteTargetFile", "/proj", $args[0], "/lang", "de", "/log", $("C:\RCWinTrans\RCWinTrans_" + [System.IO.Path]::GetFileNameWithoutExtension($args[0]) + ".log") -Wait
} -ArgumentList $_.FullName
}

Is the execution correct? Do you have any sample script that we can use as a guide?

Regards
Johannes
0 permalink
07.09.2017 12:57:50

AlexC
AlexC
Posts: 9
Hi,
I am very interested to hear if you get this working.
We are doing something similar and if we could do wintrans translation in paralle it would speed up our builds significantly.
Best regards and good luck
Alex
0 permalink
07.09.2017 21:04:06

Support
Support
Administrator
Posts: 210
Hello Johannes,

> our goal is to run RCWinTrans in parallel. Therefore, we were very pleased that the Release Notes of version 11 listed the following
> feature: "Multiple instances of RC-WinTrans 11 can be started.
>
This is correct. Multiple instances of RC-WinTrans can be started but a translation project should be entered/processed by only one "user" (process) at a time. Multiple access to a project is not supported.


Also: You are running an Update Database (/Update) changing the data in the database. At the same time /WriteTargetFile is used which requires valid and ready to use data (!).


> Error (105): The source file has changed. The target file "********. dll" cannot be written."
>
Maybe this error come because /WriteTargetFile does not find the data ready updated or not ready to access at this time.



You can start multiple instances of RC-WinTrans 11 but do not access one and the same project at a time. This is not supported.
Make your script is running /Update first. When ready: /WriteTargetFile


Regards,
Support, Schaudin.com
edited by Support on 07.09.2017
0 permalink
08.09.2017 09:28:55

johannes
johannes
Posts: 8
Hello,

thank you for your answer.

Support wrote:
Multiple access to a project is not supported.

Good, we're not doing this. We access multiple (independent) projects in parallel.

Support wrote:
Also: You are running an Update Database (/Update) changing the data in the database. At the same time /WriteTargetFile is used which requires valid and ready to use data (!).

That's NOT true.

Support wrote:
Make your script is running /Update first. When ready: /WriteTargetFile

We're doing exactly this.

johannes wrote:
Start-Process RCWinTrans-Demo.exe -ArgumentList "/Update", "/proj", $args[0], "/lang", "de", "/log", $("C:\RCWinTrans\RCWinTrans_" + [System.IO.Path]::GetFileNameWithoutExtension($args[0]) + ".log") -Wait

The last parameter prevents further processing before this command is completed.

Each project is processed only once, in such a way that the update command is started first and waits until it is finished. Only then the WriteTargetFile command is executed. This ensures that the WriteTargetFile command is not executed until the update has been completed.
Apart from that, errors also occur when I just run the update command.

All our RCWinTrans projects are independent of each other and do not influence each other. Could you please clarify what can be done in parallel and how exactly? This is really important to us.
I also started the CmdLineTester.exe twice with different projects and ran the update command in parallel. Same result.

We're translating .NET Assemblies. As far as we know, RCWinTrans uses system tools to convert from BAML to XAML. Could one of these tools cause ConvNetAsm to fail because they cannot be run in parallel?

Are there any restrictions on demo.exe compared to the normal exe?


To cut a long story short: Please post an example script (*.bat, *.ps1, ...) with which independent projects can be run in parallel.


Regards,
Johannes
0 permalink
08.09.2017 13:23:29

Support
Support
Administrator
Posts: 210
Hello Johannes,


> Apart from that, errors also occur when I just run the update command.
>
This is a new information.
In your first posting you wrote:
"If I run the rwtproject file commands one after the other, everything works without a problem. "

Then we have to check running the update command only (!?).
Please clarify.

Is the update working when using the GUI (not the command line)?


> Are there any restrictions on demo.exe compared to the normal exe?
No. But: We've tested the command line only with the full version.

> Please post an example script (*.bat, *.ps1, ...) with which independent projects can be run in parallel.
>
Sorry, no example available.
To start two processes you can start e.g. two .bat files where each is starting an RC-WinTrans with an /Update command.


> We start the translation with the following commands:
> "RCWinTrans /Update /proj %PROJPATH% /long %TGTLANG% /log %LOGFILE%"
> "RCWinTrans /WriteTargetFile /proj %PROJPATH% /long %TGTLANG% /log %LOGFILE%"
>
This is perfect (and simple) as sample and for testing. Does this produces an error?


> RCWinTrans uses system tools to convert from BAML to XAML.
> Could one of these tools cause ConvNetAsm to fail because they cannot be run in parallel?
>
An instance of RC-WinTrans is loading/using an own instance of a tool/module (like e.g. our BAML component).



Regards,
Support, Schaudin.com
edited by Support on 08.09.2017
0 permalink
08.09.2017 14:25:18

Support
Support
Administrator
Posts: 210
Hello Johanes,


I can reproduce the same error output ...


"User break: premature end.
Error (404): The converter "NETFilesConverter. ConvNetAsm. XliffToFormatFile" returned exit code 53.
Error (105): The source file has changed. The target file "********. dll" cannot be written."



The output is from /WriteTargetFile when two processes have started RC-WinTrans with /WriteTargetFile
for the same project and the files for the same target language. I have a .bat file started twice with a Windows command box.


Regards,
Support, Schaudin.com
edited by Support on 08.09.2017
0 permalink
08.09.2017 15:10:03

johannes
johannes
Posts: 8
Hi,

okay, maybe I was a little misleading. We don't want to run the update and the WriteAllTarget command in parallel, we want to run several projects at the same time. The code block of a single project encloses the two commands /Update and /WriteTargetFile, which wait for each other and are not executed in parallel.

But to make it clear: I start the CmdLineTester.exe twice.

CmdLineTester 1:
Command: /Update
Working Directory: C:\RCWinTrans
/proj: Project1.rwtproject
/lang: de
/log: C: \RCWinTrans\Project1.log
Command line application: C:\Program Files (x86)\RC-WinTrans\RC-WinTrans 11 Demo\Program\RCWinTrans-Demo. exe

CmdLineTester 2:
Command: /Update
Working Directory: C:\RCWinTrans
/proj: Project2.rwtproject
/lang: de
/log: C: \RCWinTrans\Project2.log
Command line application: C:\Program Files (x86)\RC-WinTrans\RC-WinTrans 11 Demo\Program\RCWinTrans-Demo. exe

If I click the two Execute buttons at once (with a delay of less than 1 second), 1 out of 4 execution leads to the following error:

Erzeuge Zieldatei fuer die Sprache "de"...
Datenbank Zugriffsfehler.
Error: -2146825284 Msg: Unknown error 0x800A0BBC Description: Write to file failed.
Die Datendatei konnte nicht aus der Datenbank extrahiert werden! Sprache: "de"; Datei: "C:\RCWinTrans\*****.dll"

In order to exclude subsequent errors, I executed the update command for both projects again one after the other, which works without any problems. Afterwards, I entered the /WriteTargetFile command in the CmdLineTester.exe for the two projects and clicked Execute again directly one after the other (more or less parallel). This leads to the already described error message:

User break: premature end.
Error (404): The converter "NETFilesConverter.ConvNetAsm.XliffToFormatFile" returned exit code 53.

Again: I can definitely exclude that we translate the same project in parallel.

Maybe it is a timing problem and you have just the right timing and I don't.

Regards,
Johannes
edited by johannes on 11.09.2017
edited by johannes on 11.09.2017
0 permalink
11.09.2017 14:16:28

Support
Support
Administrator
Posts: 210
Hello Johannes,

thank you for the details and for your testing.

We found the processing for .NET assemblies is not save when RC-WinTrans is running parallel.

The .NET module uses one and the same temporary folder. Extracting resources files out of a .NET assembly, as well as creating a .NET assembly (satellite DLL), a resource file has (must have) a specific resources file name and is not (cannot) named unique when placed in the temp folder. This causes (or can cause) conflicts.

We need to make the .NET assembly processing multi-processable.

Regards,
Support, Schaudin.com
0 permalink
11.09.2017 14:48:31

johannes
johannes
Posts: 8
Hello,


I'm glad I was able to help you narrow down the error.
As I said, we are very interested in running RCWinTrans projects in parallel. If I can test anything, don't hesitate to contact me.

Without wanting to pin you on a date: Can you speak of an approximate schedule? Are you talking about a period of days/weeks/months?


Regards,
Johannes
0 permalink
12.09.2017 23:29:46

Support
Support
Administrator
Posts: 210
Hello Johannes,

the next service release, including the fix for the "parallel executing", should be available in November 2017.
When ready I will inform you. ...or before to ask you if you like to test the fix. Thank you.

Regards,
Support, Schaudin.com
0 permalink
11.12.2017 12:00:44

Support
Support
Administrator
Posts: 210
Hello Johannes,

the command line is updated: RC-WinTrans 11.1

Multiple running instances: See the release notes #36.
Command line improvements: Help topic "Command Line Commands" (yellow note for V11.1).

The Demo version (V11.1) can be downloaded already (Dec. 11, 2017). The Prof. Edition follows.

Regards,
Support, Schaudin.com
0 permalink
13.12.2017 13:56:41

johannes
johannes
Posts: 8
Hello,

thank you for releasing the RCWinTrans 11.1 Demo version.
Unfortunately, we still get some errors while running the projects in parallel:

1.)
If I run RCWinTrans by my PowerShell script (or command line or CmdLineTester.exe) and don't open the GUI before, after some seconds the application Microsoft Visual Basic for Applications - NetFilesConverter opens and an error message pops up:

Compile error:
Automation error

In the background the following file is shown with the highlighted area "New CRCTResxConverter":

Public Function RESX_to_XLIFF(ProjName As String, SrcFile As String, TargetFile As String, _
LangCode As String) As Long
On Error GoTo ErrorHandler

Dim converter As RWTResxConv.IRWTRESXConverter
Set converter = New CRCTResxConverter
Dim Progress As ProgressView
Set Progress = Application.Windows.ProgressView
Dim hres As Long
Dim ErrMsg As String
...

Since you are working on the RWTResxConv.DLL as mentioned in the release notes, I think there are still some bugs in the processing.

Since I am working with VMWare (virtual machines) I can definetly reproduce this error. If I open the RCWinTrans before this error message does not appear.
If I open and close RCWinTrans the upper error message never appears, but I get the following errors:

2.)
During execution of the Update command I get the following error messages from time to time:

a) Database access error.
Error: -2146825284 Msg: Unknown error 0x800A0BBC Description: Write to file failed.
Data file could not be extracted from database! Language: "de"; File: "C:\RCWinTrans\***.dll"
Error (305): The data file (DOM) could not be loaded: "de."
Error (402): Conversion tool: NETFilesConverter.ConvNetAsm.FormatFileToXliff, Exit code: 4017
Failed.

b) Data file error! Language: "de"; Source file: "C:\RCWinTrans\***.exe"
Temp. file: C:\Users\***\AppData\Local\Temp\RC-WinTrans\RCT06801.rwtxlf
The system cannot locate the resource specified.

3.)
During execution of the WriteAllTarget command I get the following error messages from time to time:

a) Target file: C:\RCWinTrans\***.resources.dll
Error (105): The source file has changed. The target file "C:\RCWinTrans\***.dll" cannot be written.

b) Target file: C:\RCWinTrans\***.resources.dll
Database access error.
Error: -2146825284 Msg: Unknown error 0x800A0BBC Description: Write to file failed.
Data file could not be extracted from database! Language: "de"; File: "C:\RCWinTrans\***.dll"
Error (305): The data file (DOM) could not be loaded: "de."

I am willing to test further versions. Please let me know if you need any help to localize the errors.


Regards,
Johannes
edited by johannes on 13.12.2017
edited by johannes on 14.12.2017
0 permalink
20.12.2017 22:39:32

Support
Support
Administrator
Posts: 210
Hello Johanes,

something may be wrong with the installation of RC-WinTrans and/or components.
Also: Make sure the Window Feature ".NET 3.5 (2.0)" is enabled.

1)...
> after some seconds the application Microsoft Visual Basic for Applications - NetFilesConverter
> opens and an error message ...
>
"RWTResxConv.IRWTRESXConverter" is a COM object which cannot be created or is
not registered correctly in the Windows registry. The VBA editor opens for this reason.

Remove RC-WinTrans and install the Demo newly. Start the setup with "Run as administrator".

Then...
- Start RC-WinTrans normally (GUI) to check if all is OK. Open e.g. the .NET Sample
(Sample View) project, check "Update Database" and "Write Target File".

- Use the RC-WinTrans Command Line Editor to check the command line -- or PowerShell.
I cannot use VMWare to support you.

Regards,
Support, Schaudin.com
0 permalink
21.12.2017 14:13:42

johannes
johannes
Posts: 8
Hello,

thank you for your answer.
I set up a new machine and installed RCWinTrans Demo version 11.1 from 17th December 2017.
I was able to to run the commands "Update" and "WriteAllTarget" for the .NET sample project without any problem.
I have installed and enabled .NET Framework 2.0 and 3.5.

The errors listed as 2.) and 3.) in my previous post still occur. It doesn't matter if I run the commands in the RCWinTrans CmdLineTester or with my script: same flawed result.

We are eager to contribute as much help as possible to narrow down these errors.
We REALLY need to run RCWinTrans in parallel!

Kind regards,
Johannes
0 permalink
02.01.2018 14:07:54

Support
Support
Administrator
Posts: 210
Hello Johannes,

right. The errror you've described under 2) and 3) can be reproduced.

Regards,
Support, Schaudin.com
0 permalink
08.01.2018 14:42:25

johannes
johannes
Posts: 8
Hello,

may I ask if these bugs will be fixed in the next version and when it will be released?

Kind regards,
Johannes
0 permalink
09.01.2018 22:57:35

Support
Support
Administrator
Posts: 210
Hello Johannes,

when running parallel "/Update" processes there are (or can be) file access errors with no definitively identifiable cause. I'm unable to say when these problems can be solved.

I'm very sorry I cannot give you a better reply at the moment.

Regards,
Support, Schaudin.com
0 permalink

Home » RC-WinTrans Support » Executing RCWinTrans 11 in parallel throws error





Powered by AspNetForum 6.9.6.0 © 2006-2010 Jitbit Software