LeftMenu/mywms64.gif

Main page

FAQ
HOWTO
Components

Page Index

myWMS News
Mailinglist
lexicon

Recent Changes
WikiEtiquette

Find pages
Unused pages
Undefined pages

Impressum

Set your name in
UserPreferences

Edit this page


Referenced by
Left Menu




JSPWiki v2.2.33
i18n support


[RSS]

FAQ


No multiple derivation in myWMS.

the myWMS kernel uses one class and only one for different business objects (for example containers, boxes, palette or others). They can only mapped to one java class. A type field is used to distinguish between them. This means that all objects will contain the same attributes, regardless if the attribute is needed or not (a palette will have the attributes of a box and vice versa). From my point of view this is a handicap in designing complex applications. The user of myWMS is strictly restricted and loses the advantage of multiple derivation/oo modelling. I would prefer a kernel that handles interfaces of BusinessObjects instead of implementations. So the user has less restrictions in object modelling.

A: To be open for everything seams not to be leakproof. myWMS comes with a standard presentation of several BusinessObjects. This is what the system needs to rely on. Additional aspects can be added by derivation of the BusinessObjects. Without any negative effect, the role concept can bee applied without the need for multiple derivation.

Nevertheless, since kernel3 access to a special derivation of a BusinessObject base type is granted, by some additional methods of the kernel interfaces. Using special derived BusinessObjects implies to follow the basic principles the basic myWMS BusinessObject types stand for.

Also some generic BusinessObject types have been added, which utilize the use of the new feature.

In the application server version of myWMS (myWMS AS) the BusinessObjects are more than ever application specific. Each fassade - generated to support a special process of the application - will use its special properties of the BusinessObjects.
This implies, that multiple derivation in myWMS AS is possible, but must be managed by the application specific code. It seems, that universal algorithms are a bit harder to implement for such an individual implementation. (Nothing is said about the time and the complexity to do such tasks - probably it will be much easier to work out myWMS AS than the kernel based myWMS.)

The kernel terminates/exits right after it has been instantiated. Why?

A: Maybe you changed some implementations of your BusinessObjects. If this happens and prevayler is the persistence method, it will try to read the serialized objects before the kernel starts operating. If the serialized objects (BusinessObjects) do not match the class available in the instantiated kernel, objectserialization will report all kinds of silly errors. So please check this first.

We even did watch differences in several java implementations on different plattforms. So for example the class BusinessObject compiled under Windows seemed to be serialized in another way than the Linux compiled class did.

A: Possibly the configuration file is trashed. Please supply a valid configuration file to the kernel.

The kernel log shows a StringIndexOutOfBoundsException right after startup. Why?

If you watch this, it probably relies on a corrupted configuration file. We watch this allways if CVS found a conflict inside a configuration file and the user ignored this.

This is a log resulting from the error described above:

<jordan@max>:2003/10/29 16:01:06.573 [OPERATION|de.mywms.wms.kernel.equipment.EquipmentKernel@main] [startupProcedure()]:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -2
        at java.lang.String.substring(String.java:1480)
        at de.mywms.config.ConfigurationProvider.setConfiguration(ConfigurationProvider.java:190)
        at de.mywms.config.ConfigurationFile.readConfiguration(ConfigurationFile.java:118)
        at de.mywms.config.Persistor.<init>(Persistor.java:144)
        at de.mywms.wms.kernel.equipment.EquipmentKernel.startupProcedure(EquipmentKernel.java:2523)
        at de.mywms.wms.kernel.equipment.EquipmentKernel.main(EquipmentKernel.java:2629)
Taste drücken, um fortzusetzen . . .

How do I toggle a file, checked in as a text file, to a binary file inside the CVS repository?

Please use the following command:
cvs admin -kb <filename>

This makes CVS handle the file as a binary file in future. But please keep in mind, that merging of binary files is not supported by cvs. Changes to this files will mostly result in 100% changes. If more than one person edits such a file at a time, this will always lead into a conflict.

How to prevent an "adress allready in use" error?

A: Basicly this error is reported mostly from Windows plattforms. Several services try to acquire tcp ports, which other started application would require to launch. Some effect could be, that terminating or just not starting Outlook will prevent a startup failure of rmi based services like myWMS.

A good chance to prevent such conlflicts is to register the required ports in the services file of the operating system. For unixes this file is usually located at /etc/services. In Windows 2000 the file C:\WINNT\system32\drivers\etc (where c:\winnt is representing your Windows home directory). I would suggest to add the following ports to the services files:

rmi-admin        1098/tcp
rmi              1099/tcp

If you have other dedicated ports you want to save from beeing wildly used, add them also to the services file.

BTW: This hack also helps for example JBoss, wich also utilizes RMI.

How to handle Runtime Exceptions?

A: Runtime exceptions can occur. That's a fact in Java. The special szenario was (as I recall) an undeclared OptimsticLockException exception, thrown form the Hibernate stack inside a JBoss application server, screwing up an web application.
The first answer should be: Just try again! That is, what for example JMS does, if something is going wrong. And that is, what I would do, if the first click would not be successfull (thank you Microsoft ;) ).
Some ideas:
  • Please always think about runtime exceptions!
  • If an OptimsticLockException occurs: Is there a design fault? How can it be, that to people (or robots) change the same data at the same time?
  • Have a look onto long running transactions in a highly responsive system. In most cases this is as impossible as dehydrated water.

Howto prevent the SQL type varchar and use type text instead?

A: There is a hibernate solution. It works at least with PostgreSQL and JBoss. Pleas use the Hibernate @type annotation:
@Type(type="text")
String getProperty() { ... }

What are your general policy when using MyWMS for commercial purpose: one time fee, per install fee, yearly fees?

A: For commercial usage a one time fee applies. Members of the Developer Inside Network have some resellable licenses included in their membership fee. Non-commercial usage is free.

I don't see any mailing list or forum or other ways to get in touch with evolutions, discussion, bugs, support. Does such informations/exchanges exists?

A: Please apply to the following ressources:
  • wiki.mywms.org
  • bugzilla.mywms.org
  • www.mywms.org
  • pollux.okit.de/mailman/listinfo/mywms

Is there a CVS or SVN server I can use to synch with your latest sources and analyze how I can modifiy/extent to particular customer specificities?

A: Yes, we have a CVS repository. Access to the repository is limited to DIN members. The public access is restricted to published versions inside the download area at www.mywms.org/download/public.




Go to top   Edit this page   More info...   Attach file...
This page last changed on 10-Dec-2008 23:34:33 CET by 213.5.70.184 .