Frequently Asked Questions
LemonTree is slow, what can I do to improve performance?
LemonTree needs strong hardware to quickly load, diff and merge models. We recommend a recent middle-class CPU (i5, Ryzen, Xeon E3 at the time of writing), paired with a large amount of RAM (16+GB in Dual Channel configuration). LemonTree parallelizes its most demanding tasks, so these are the most important metrics for LemonTree to run fast:
- Number of physical cores
- Speed of those cores
- Available memory
- Memory bandwidth
If you're running LemonTree on virtualized hardware, make sure to allocate enough resources for the VM. LemonTree does not perform well on machines with one core, or less than 8GB of RAM.
Enterprise Architect uses a legacy version of Microsoft Access to store the data for .eap(x) models. Both reading and writing models needs to utilize appropriate drivers to interact with the .eap(x) models, which are notoriously slow.
This puts a natural limit on any performance improvements we can include in LemonTree.
Unfortunately, this also means that better hardware can only improve performance up to a point. Don't expect big performance gains from server class hardware.
LemonTree needs to load representations of up to 3 different models into memory to efficiently perform both the diff and merge. These representations LemonTree are built to ensure maximum processing speed, and may require significantly more RAM than the required disk space of the model. If your computer can supply the necessary RAM to do so, this does not have an adverse effect on the performance of LemonTree.
However, once the memory usage of a computer approaches the hardware maximum, a process known as memory swapping sets in. Parts of the current RAM are written to the harddisk so they can be re-used, and the data is retrieved from the harddisk. While this technique provides additional RAM, the switch itself is excessively slow. As such, once a LemonTree diff/merge requires memory swapping to be used, it will still complete, but it will take a multiple of the otherwise required time.
We're always looking for ways to improve the performance of LemonTree. As such, it's a good idea to always keep your version of LemonTree up-to-date to ensure optimal performance.
More details on the development of performance and memory consumption of different LemonTree versions can be found here:
Is a silent install possible and can I exclude optional features during the silent install?
The silent install and the exclusion of optional features is possible. In our example, we install LemonTree 3.1.0 without the EA-Addin feature. Open the command prompt with the key combination [Windows] + [R] and the command "cmd". msiexec /i LemonTreev3.1.0.msi ADDLOCAL="all" REMOVE="EAAddinFeature" With this command, the UI will still show, but the optional feature "Addin for Enterprise Architect" is excluded
To use this within a silent install (no UI) the /q ensures unattended installation. msiexec /i LemonTreev3.1.0.msi ADDLOCAL="all" REMOVE="EAAddinFeature" /q
Does LemonTree support diffing/merging my entire model?
Due to the complexity of data of the various model types supported by LemonTree, and LemonTree's mechanism of accessing this data (by reading the stored data directly), there is unfortunately no way to accurately judge if all data stored in your model will be correctly diffed/merged.
We are currently working on a comprehensive evaluation of this topic, but the results are still unfinished.
For now, we are maintaining a list of Enterprise Architect features which are not supported by LemonTree, which you can find here:
LemonTree is reporting that my model has inconsistencies. What happened? What can I do?
This is a complex topic, unfortunately, but we'll do our best to help. Please see the separate page on this topic:
Text in the Tree Browser is partially cut off. How do I see the whole text?
The GUI of LemonTree is a HTML-GUI. So the features of HTML are available.
Use "Shift" and the mouse-wheel to scroll horizontally.
During merging .EAP or .EAPX files I am running into an lock count exceeded Error message. What can I do?
We recommend switching to .QEAX file format. You can transform your model to .QEAX file format, do the merge and then transform, if needed, to .EAP or .EAPX file format again.
Alternatively you can increase the
MaxLocksPerFile to 70.000 or higher. This should allow the useage of .EAP and .EAPX files. For that you can use the registry file that should set both 3.x and 4.0 Jet values to 70.000 automatically.
Or you do it manually and set the value
MaxLocksPerFile twice to 70.000.
WMF and EMF pictures are not supported anymore. How can I check if this is relevant for my model?
You can check if this is relevant for your model using the following SQL queries.
select * from t_image where type like "%Metafile%"
select * from t_stereotypes WHERE Metafile IS NOT NULL AND MFEnabled = 1
I have troubles installing the RLM License Server for Floating licenses. What can I do?
Version Control Systems
Which GIT server to choose and how to connect it with LemonTree?
LemonTree is only installed on the GIT client and only needs to be configured there.
It is irrelevant which Git server (i.e. Github, BitBucket, DevOps, GitLab, etc.) is used, the decisive factor is the VCS client.
That's why LemonTree is so versatile because there is no dependency on a server, but only one VCS client has to be configured with LemonTree.
Which VCS client to choose and how to connect it with LemonTree?
The easiest way is to use TortoiseGit or SmartGit(recommended) and install those tools before LemonTree.
If LemonTree is then installed it will be automatically entered in the VCS client as diff and merge tool and from then on you work with git, as usual, i.e. clone project, add EA project, commit and push.
Are there any recommendations on how to setup my git repository?
Yes, we recommend to enable LFS for all EA model types via
.gitattributes and add
*.ldb to your
.gitignore. This minimizes potential problems with bigger models and ensures no temporary EA files are being pushed to your repository.
*.eap filter=lfs diff=LemonTree merge=LemonTree binary
*.eapx filter=lfs diff=LemonTree merge=LemonTree binary
*.qea filter=lfs diff=LemonTree merge=LemonTree binary
*.qeax filter=lfs diff=LemonTree merge=LemonTree binary
Where do I find the logfiles of LemonTree?
Logfiles can be downloaded via the burger menu.
Alternatively they can also be found directly in %appdata%\LieberLieber\LemonTree\logs
If you've discovered any irregularities, please don't hesitate to report an issue. Details can be found here:
Why can't I use LemonTree Components with the new QEA file format?
QEA is meant as a single user personal file format, meaning the internal SQLite database is locked during EA runtime.
As a result we opted to just support QEAX for our Components workflow.
QEAX support everything else that QEA can do and converting is as simple as changing the file extension.
Which formats are supported by LemonTree?
LemonTree can use the following formats for the diff and merge:
All types of EA repositories (except Cloud Repositories and Firebird)
- OLEDB / ODBC
- Native drivers (from EA 16)
- MPMS Format (LemonTree Format used for LemonTree Components)
- MMS files (OpenMBEE format)
- Magic Draw Files
Unfortunately, XMI files from EA or baselines or RAS components cannot be compared with LemonTree.
The LemonTree Components are ideal for working with LemonTree at package level and managing them as reusable parts. Similar to XMI exports, the components are an extract from a model, which can be imported and synchronized in another model. This allows you to cover similar functions as with the RAS.
Does LemonTree work with encrypted EA connection strings?
No, LemonTree does not support encrypted connection strings.
Why do I receive a merge window when I publish components?
The component has already been published and changes have been made. If you publish again, LemonTree is called for the merge. To be more precise; The base version of the model is different from the one in the folder and the current version of the model (which was changed local) is different and published. LemonTree is called for the merge and does this automatically if the same elements in the model have not been changed.
How to solve the Error - Missing (0x80040154)?
Open the command prompt with the key combination [Windows] + [R] and the command "cmd". Run the following commands wiht admin rights:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm "C:\Program Files\LieberLieber\LemonTree\Proxy\LemonTree.EAAddin.Proxy.dll" /unregister
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm "C:\Program Files\LieberLieber\LemonTree\Proxy\LemonTree.EAAddin.Proxy.dll" /unregister
C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm "C:\Program Files\LieberLieber\LemonTree\Proxy\LemonTree.EAAddin.Proxy.dll" /codebase
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\regasm "C:\Program Files\LieberLieber\LemonTree\Proxy\LemonTree.EAAddin.Proxy.dll" /codebase
In the case the solution above does not work the next step would be to check it out via EA Installation Inspector. Since you have a lot of Addins the output might be hard to interpret but we would like to see the entries of the LemonTree.EAAddin.
Link to tool: EA Installation Inspector Please send screenshots to firstname.lastname@example.org
What is the repository in the component's context?
The repository is the collection of mpms files - basically, the folder(s) configured to publish and import. (The folder(s) where all mpms files are collected.)