Trace:
Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
visionx:faq_tech [2021/06/30 11:04] admin |
visionx:faq_tech [2023/03/08 22:38] admin |
||
---|---|---|---|
Line 44: | Line 44: | ||
[[visionx:data_modeling_and_representation#views_and_storages|Views and Storages]] \\ | [[visionx:data_modeling_and_representation#views_and_storages|Views and Storages]] \\ | ||
[[visionx:data_modeling_and_representation#create_dropdown_without_foreign-key_relation|Create Dropdown Without Foreign-Key Relation]] | [[visionx:data_modeling_and_representation#create_dropdown_without_foreign-key_relation|Create Dropdown Without Foreign-Key Relation]] | ||
+ | |||
+ | ==== Out of memory in VisionX ==== | ||
+ | |||
+ | If you get an **Out of memory** or a **Java heap space** error, simply increase the memory of VisionX in visionx.bat or visionx.sh: | ||
+ | |||
+ | <code> | ||
+ | @ECHO OFF | ||
+ | .\runtime\bin\java -Xmx512M ... -jar lib\visionxloader.jar | ||
+ | </code> | ||
+ | |||
+ | Change **512M** to e.g. **1G** or **1500M**. Don't forget to restart VisionX. | ||
+ | |||
+ | ==== Additional JVM start parameters ==== | ||
+ | |||
+ | On Windows, VisionX is usually started with visionx.exe. To define additional JVM parameters, however, visionx.bat or visionx.sh must be used, as any JVM parameters can be set with it, e.g .: | ||
+ | |||
+ | <code> | ||
+ | @ECHO OFF | ||
+ | .\runtime\bin\java -Xmx512M -Dfile.encoding=UTF-8 ... -jar lib\visionxloader.jar | ||
+ | </code> | ||
+ | In this example, the system parameter **file.encoding** was set to **UTF-8**. | ||
+ | |||
+ | However, it is entirely possible to set any JVM parameters when using visionx.exe. Since VisionX uses the open source project launch4j, all features of the library can be used, such as the possibility of entering the JVM parameters in an ini file: | ||
+ | |||
+ | All you have to do is create a file called **visionx.l4j.ini** in the same directory as visionx.exe. The file can then be filled with the desired parameters: | ||
+ | |||
+ | <code ini> | ||
+ | -Dfile.encoding=UTF-8 | ||
+ | </code> | ||
+ | |||
+ | ==== How to start VisionX with de_CH language settings ==== | ||
+ | |||
+ | Simply change the start script (visionx.bat, visionx.sh) and add your language settings: | ||
+ | |||
+ | <code> | ||
+ | -Duser.country=CH -Duser.language=de_CH -Dtomcat.arguments=-Duser.country=CH;-Duser.language=de_CH | ||
+ | </code> | ||
+ | |||
+ | Full script: | ||
+ | <file dos visionx_de_CH.bat> | ||
+ | @ECHO OFF | ||
+ | .\runtime\bin\java -Duser.country=CH -Duser.language=de_CH -Dtomcat.arguments=-Duser.country=CH;-Duser.language=de_CH -Xmx512M --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED -jar lib\visionxloader.jar | ||
+ | </file> | ||
+ | |||
+ | If you use Windows and start VisionX with visionx.exe, it's also possible to create a file with the name visionx.l4j.ini: | ||
+ | <file ini visionx.l4j.ini> | ||
+ | -Duser.country=CH | ||
+ | -Duser.language=de_CH | ||
+ | -Dtomcat.arguments=-Duser.country=CH;-Duser.language=de_CH | ||
+ | </file> | ||
+ | |||
+ | ==== WAR creation shows compiler errors! ==== | ||
+ | |||
+ | Usually such problems occur if you do manual coding with an IDE. To find out what's the compiler error, simply enable logging and add the line | ||
+ | |||
+ | com.sibvisions.visionx.server.ant.AntRunner.level = ALL | ||
+ | | ||
+ | to the file **''<visionx>/lib/logging.properties''**. Read more information about [[visionx:visionx_logging|VisionX logging]]. | ||
+ | |||
+ | To see the output, start visionx with ''visionx.bat''. All problems will be shown in the console. | ||
+ | |||
+ | Another option is to start the WAR creation manually, in your IDE, with included ANT build file: **build.xml**. Every application contains this build file. | ||
+ | The ''start.complete'' task will create the WAR file. | ||
+ | |||
+ | ==== Column with same name created when making a subtable ==== | ||
+ | |||
+ | //**When I click “Make Subtable” after adding a field on the “Edit table” screen, a mandatory column is added that has the same name as the subtable. This is always confusing to me, as I have almost never had a situation where I would have wanted to create a column that has the same name as the table. I am always unsure if best practice here would be to replace the table name with the intended first column name, or if the column with the table name has to be kept in place for another reason (especially since it is mandatory). Can it just be replaced? | ||
+ | \\ \\ | ||
+ | Also, when I click the “Make Subtable” button in the “New Screen” wizard, the ID column is not shown. But when I edit an existing table, add a new field and click “Make Subtable” the ID column is shown. Is that intentional?** // | ||
+ | \\ \\ | ||
+ | This is nearby best practice, the only downside is, that we do not know the plural or singular of the given word, to have it perfect. | ||
+ | The theory and best practice in detail: | ||
+ | \\ \\ | ||
+ | Tables should be in plural (eg. Projects, Tasks, States...). | ||
+ | This is database theory, but in VisionX you can also use singular, to have less work (clicks and edits) to do, as the first column will be automatically singular. | ||
+ | \\ \\ | ||
+ | Mainly a table should have a name/identifier column beside the internal id column. | ||
+ | This column should have a proper name that identifies the table behind this column. | ||
+ | (eg. Project, Task, ...) | ||
+ | This column should never be called "Name" or "Identifier", ..., because nearby every table will then have a "Name" column. | ||
+ | \\ \\ | ||
+ | VisionX generates the label out of the box from the column names. | ||
+ | If you have several tables inside a screen, you would have several Name editors, and will not know, to which table they belong. | ||
+ | Actually the label of this editor will be renamed to Project or Task in the screen afterwards... | ||
+ | \\ \\ | ||
+ | Also in comboboxes it make sence, that the value to choose is not called Name. It is a way better to have out of the box a field "Project" , "Task" or "State" to choose a Project, Task or State. | ||
+ | \\ \\ | ||
+ | So this is the reason why it is the best practice, to initially give directly the identifier column a proper name, that identifies the table behind. | ||
+ | \\ \\ | ||
+ | There is the possibility, that this identifier column should be calculated and not entered directly. | ||
+ | eg: Contacts. | ||
+ | Here it makes sence to have a "Contact" column, that is shown, if you have to choose a contact in another table (eg in Projects table) | ||
+ | Actually you have the columns first name and last name. The column contact could be calculated either "[First Name] [Last Name]" or like in Outlook, "[Last Name], [First Name]"... | ||
+ | Designing the data model this way, you'll have a contact combobox in projects screen to choose "Doe, John", "Mustermann, Max", ... | ||
+ | \\ \\ | ||
+ | **Short Summary** | ||
+ | \\ \\ | ||
+ | A table should have a name that describes the data it stores. | ||
+ | Normally this table should have a identifier/name column whose name describes which kind of data you get (so this should be the singular of table name), and whose value represents the whole row, to be able to use it as a combobox. | ||
+ | |||
+ | ==== Change E-Plug standard ports ==== | ||
+ | |||
+ | The standard ports for E-Plug communication are 1725 (E-Plug port in Eclipse for VisionX to E-Plug) and 1726 (Port in VisionX for E-Plug to VisionX). If you have problems e.g. ports are already in use, simply change the ports with following system parameters: | ||
+ | |||
+ | ''EPlugPort (default: 1725)'', ''VisionXPort (default: 1726)'' | ||
+ | |||
+ | Simply add the system parameters to the [[#additional_jvm_start_parameters|start configuration of VisionX]]. | ||
+ | |||
+ | ==== VCS folders ==== | ||
+ | |||
+ | Which folders should be added to VSC like git or svn? | ||
+ | |||
+ | All folders and files in your application directory, but not: | ||
+ | |||
+ | <code> | ||
+ | config_new.xml (if available) | ||
+ | build/classes | ||
+ | src.client.backup | ||
+ | src.server.backup | ||
+ | work/classes | ||
+ | </code> |